Redis入门
Linux下安装
下载安装包
官网地址:https://redis.io/
中文官网:http://www.redis.cn/
或者root下:
wget https://github.com/redis/redis/archive/7.0.2.tar.gz
解压Redis安装包!临时文件和程序一般放在/opt
mv redis-7.0.2.tar.gz /opt
tar -zxvf redis-7.0.2.tar.gz
进入解压后的文件,可以看到redis的配置文件
cd /opt/redis-7.0.2
基本环境安装
yum install gcc-c++
查看安装是否成功
gcc -v
基本环境安装
cd /opt/redis-7.0.2
make
make install
redis的默认安装路径
/usr/local/bin
将redis配置文件拷贝一份至该目录使用
mkdir qmtconfig
cp /opt/redis-7.0.2/redis.conf qmtconfig
redis默认不是后台启动,修改配置文件
vim qmtconfig/redis.conf
修改
daemonize no
为daemonize yes
否则启动后就关掉了
启动redis服务
使用指定配置文件启动
redis-server qmtconfig/redis.conf
连接与测试连接
redis-cli -p 6379
或者
redis-cli -a 密码
关闭服务与连接
测试性能
redis-benchmark是一个压力测试工具
官方自待的性能测试工具!
redis-benchmark命令参数如下:
序号 | 选项 | 描述 | 默认值 |
---|---|---|---|
1 | -h | 指定服务器主机名 | 127.0.0.1 |
2 | -p | 指定服务器端口 | 6379 |
3 | -s | 指定服务器 socket | |
4 | -c | 指定并发连接数 | 50 |
5 | -n | 指定请求数 | 10000 |
6 | -d | 以字节的形式指定 SET/GET 值的数据大小 | 3 |
7 | -k | 1=keep alive 0=reconnect | 1 |
8 | -r | SET/GET/INCR 使用随机 key, SADD 使用随机值 | |
9 | -P | 通过管道传输 | 1 |
10 | -q | 强制退出 redis。仅显示 query/sec 值 | |
11 | –csv | 以 CSV 格式输出 | |
12 | *-l*(L 的小写字母) | 生成循环,永久执行测试 | |
13 | -t | 仅运行以逗号分隔的测试命令列表。 | |
14 | *-I*(i 的大写字母) | Idle 模式。仅打开 N 个 idle 连接并等待。 |
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
结果如下:
|
|
基础知识
redis默认有16个数据库
默认使用第0个
可以使用select切换数据库
|
|
值得注意的是,
flushall
清空全部数据库
Redis是单线程的
Redis是很快的,是基于内存操作的,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了。
Redis是C语言写的,官方提供的数据为100000+的QPS,完全不比同样是使用key-value的Memecache差!
Redis为什么单线程还这么快?
- 误区1:高性能服务器一定是多线程的?否
- 误区2:多线程(CPU上下文会切换!)一定比单线程效率高?否
了解:CPU>内存>硬盘的速度
核心:Redis是将所有的数据全部放在内存中,所以说使用单线程去操作效率就是高的,多线程(CPU上下文会切换:耗时的操作!!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳方案!