三、Redis安装部署
3.1 Redis安装
#关闭防火墙 systemct1 stop firewalld systemct1 disabled firewalld setenforce 0 #下载编译工具 yum install -y gcc gcc-c++ make #上传软件包并解压 tar zxvf redis-5.0.7.tar.gz cd /opt/redis-5.0.7/ #指明安装路径开始安装 make && make PREFIX=/usr/local/redis install #由于Redis源码包中直接提供了Makefile文件,所以在解压完软件包后,不用先执行./configure 进行配置,可直接执行make与make install命令进行安装. #执行软件包提供的insta11 server.sh 脚本文件设置Redis服务所需要的相关配置文件 cd/opt/redis-5.0.7/utils ./install_server.sh #一直回车 Please select the redis executable path [] /usr/local/redis/bin/redis-server#需要手动修改为 /usr/local/redis/bin/redis-server #注意要一次性正确输入 #优化路径 ln -s /usr/local/redis/bin/* /usr/local/bin/ #查看端口状态 netstat -natp |grep redis
#开启/关闭/重启 /etc/init.d/redis_6379 stop /etc/init.d/redis_6379 start /etc/init.d/redis_6379 restart #配置文件参数 cd /etc/redis/ vim 6379.conf ...... 70 bind 127.0.0.1 192.168.109.133 #监听的IP地址 93 port 6379 #监听端口 137 daemonize yes #后台启动 159 pidfile /var/run/redis_6379.pid #Redis的进程号保存位置 172 logfile /var/log/redis_6379.log #日志保存的位置 187 databases 16 #监听库的数量(编号0-15)
3.2 Redis命令工具
工具 |
作用 |
redis-server | 用于启动redis的工具 |
redis-benchmark | 用于检测redis在本机的运行效率 |
redis-check-aof | 修复AOF持久化文件 |
redis-check-rdb | 修复RDB持久化文件 |
redis-cli | redis命令行工具 |
3.3 redis-cli:redis命令行工具
语法:redis-cli -h host -p port -a password -h:指定远程主机机 -p:指定Redis服务的端口号 -a:指定密码,未设置数据库密码可以省略 #-a选项若不添加任何选项表示使用127.0.0.1:6379连接本机上的Redis数据库 #登录本机 redis-cli
3.4 redis-benchmark 测试工具
redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能
基本的测试语法:redis-benchmark [选项] [选项值]. -h:指定服务器主机名. -p:指定服务器端口. -s:指定服务器 socket -c:指定并发连接数. -n:指定请求数. -d:以字节的形式指定SET/GET值的数据大小. -k:l=keep alive 0=reconnect -r:SET/GET/INCR 使用随机key,SADD使用随机值. -P:通过管道传输<numreg>请求. -q:强制退出redis.仅显示query/sec值. --csv:以CSV格式输出. -l:生成循环,永久执行测试. -t:仅运行以逗号分隔的测试命令列表. -I:Idle模式.仅打开N个idle连接并等待.
#向IP地址为192.168.109.133、端口为6379的Redis服务器发送100个并发连接与100000个请求测试性能 redis-benchmark -h 192.168.109.133 -p 6379 -c 100 -n 100000
#测试存取大小为100字节的数据包的性能 redis-benchmark -h 192.168.109.133 -p 6379 -q -d 100
#测试本机上Redis服务在进行set与lpush操作时的性能 redis-benchmark -t set,lpush -n 100000 -q
四、Redis常用命令
命令 | 解释 |
set | 存放数据 |
get | 获取数据 |
keys * | 查看所有的key |
keys k? | 查看k开头后面任意一位的数据 |
exists | 判断键是否存在(存在1,不存在0) |
del | 删除键 |
type | 查看键对应的value值类型 |
rename key1 key2 | 改名,不管key2是否存在都会改名成功,如果存在key1会覆盖key2 |
renamenx key1 key2 | 改名,若key2不存在,可以改名成功;反之不行 |
dbsize | 查看当前数据库中key的数目 |
4.1 set、get
set:存放数据,命令格式为set key value get:获取数据,命令格式为 get key 127.0.0.1:6379>set teacher zhangsan OK 127.0.0.1:6379>get teacher "zhangsan"
4.2 keys
#keys命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用. #先创建几个键 127.0.0.1:6379>set k1 1 127.0.0.1:6379>set k2 2 127.0.0.1:6379>set k3 3 127.0.0.1:6379>set vl 4 127.0.0.1:6379>set v5 5 127.0.0.1:6379>set v22 5 127.0.0.1:6379>KEYS * #查看当前数据库中所有键 127.0.0.1:6379>KEYS v* #查看当前数据库中以v开头的数据 127.0.0.1:6379>KEYS v? #查看当前数据库中以v开头后面包含任意一位的数据 127.0.0.1:6379>KEYS v?? #查看当前数据库中以v开头v开头后面包含任意两位的数据
4.3 exists 判断键是否存在
返回1,存在
返回0,不存在
127.0.0.1:6379> exists teacher (integer) 1 127.0.0.1:6379> exists name (integer) 0 127.0.0.1:6379>
4.4 del 删除数据
127.0.0.1:6379> keys * 1) "v22" 2) "mylist" 3) "k3" 4) "v1" 5) "k2" 6) "teacher" 7) "k4" 8) "myset:__rand_int__" 9) "counter:__rand_int__" 10) "key:__rand_int__" 11) "k1" 12) "k5" 127.0.0.1:6379> del teacher (integer) 1 127.0.0.1:6379> keys * 1) "v22" 2) "mylist" 3) "k3" 4) "v1" 5) "k2" 6) "k4" 7) "myset:__rand_int__" 8) "counter:__rand_int__" 9) "key:__rand_int__" 10) "k1"
4.5 rename 重命名
#使用rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key的值。 127.0.0.1:6379> keys * 1) "v22" 2) "mylist" 3) "k3" 4) "v1" 5) "k2" 6) "k4" 7) "myset:__rand_int__" 8) "counter:__rand_int__" 9) "key:__rand_int__" 10) "k1" 11) "k5" 127.0.0.1:6379> rename k1 k111 OK 127.0.0.1:6379> keys * 1) "v22" 2) "mylist" 3) "k3" 4) "v1" 5) "k2" 6) "k4" 7) "k111" 8) "myset:__rand_int__" 9) "counter:__rand_int__" 10) "key:__rand_int__" 11) "k5"
4.6 renamenx
127.0.0.1:6379> keys * 1) "v22" 2) "mylist" 3) "k3" 4) "v1" 5) "k2" 6) "k4" 7) "k111" 8) "myset:__rand_int__" 9) "counter:__rand_int__" 10) "key:__rand_int__" 11) "k5" 127.0.0.1:6379> renamenx k2 k222 (integer) 1 127.0.0.1:6379> renamenx k222 k3 (integer) 0 127.0.0.1:6379> keys * 1) "v22" 2) "mylist" 3) "k3" 4) "k222" 5) "v1" 6) "k4" 7) "k111" 8) "myset:__rand_int__" 9) "counter:__rand_int__" 10) "key:__rand_int__" 11) "k5"
4.7 dbsize查看key数目
127.0.0.1:6379> dbsize (integer) 11 127.0.0.1:6379> #一共11个键
4.8 type查看数据类型
127.0.0.1:6379> type k111 string 127.0.0.1:6379> get k111 "1" 127.0.0.1:6379>
4.9 设置密码
#设置密码 config set requirepass 000000 #auth认证 auth 000000 #查看密码 config get requirepass #删除密码 config set requirepass ''