Redis
Spring 集成 Reids(Spring-data-redis)
Redis 连接密码设置
可以为一个 redis-server 实例设置终端密码,设置了密码后,终端必须通过密码验证才可以连接 redis;
127.0.0.1:6379> config get requriepass # 获取当前验证密码,默认密码为空
1) "requirepass"
2) "".
127.0.0.1:6379> config set requirepass "assad" # 设置验证密码为 "assad"
OK
之后登陆终端必须使用密码才可以登陆
assad@DESKTOP-assad:/etc/redis$ redis-cli
127.0.0.1:6379> auth "assad"
OK
当然也可以直接在 redis.conf 配置文件中修改 requirepass 变量;
Redis 数据备份和恢复
redis 支持数据的备份和恢复,redis的数据库保存为 dir 变量指定的 dump.rdb 中,可以将数据备份到磁盘中,可以从磁盘中恢复数据库;
备份当前数据
127.0.0.1:6379 > save # 备份数据
127.0.0.1:6379 > bgsave # 备份数据(后台执行)
当前数据会被备份到 dir 变量指定的位置
恢复数据
如果到恢复数据,只需要将备份的 dump.rdb 移动到 redis dir 变量指定的位置,重新启动 redis 即可;
Redis 事务提交
redis 中的每一个指令操作都具有原子性,同样支持将一系列的操作进行原子性封装,使用 multi 指令开启事务,exec 提交事务,一个简单的示例如下:
127.0.0.1:6379> multi # 开启事务
OK
127.0.0.1:6379> rpush users "assad" "vancy" "tim"
QUEUED
127.0.0.1:6379> rpop users
QUEUED
127.0.0.1:6379> lrange users 0 -1
QUEUED
127.0.0.1:6379> exec # 提交事务
1) (integer) 3
2) "tim"
3) 1) "assad"
2) "vancy"
127.0.0.1:6379>
Redis 性能测试
可以以通过 redis 自带的 redis-benchmark 工具来对 redis 进行性能测试,该工具调用指令如下:
redis-benchmark [option] [option value]
其中 option 的列表如下:
- -h 指定服务器主机名,默认值 127.0.0.1
- -p 指定服务器端口,默认值 6379
- -s 指定服务器 socket
- -c 指定并发连接数,默认值 50
- -n 指定请求数,默认值 10000
- -d 以字节的形式指定 SET/GET 值的数据大小,默认值 2
- -k 1=keep alive 0=reconnect ,默认值 1
- -r SET/GET/INCR 使用随机 key, SADD 使用随机值
- -P 通过管道传输 <numreq> 请求,默认值 1
- -q 强制退出 redis。仅显示 query/sec 值
- --csv 以 CSV 格式输出
- -l 生成循环,永久执行测试
- -t 仅运行以逗号分隔的测试命令列表
- -I Idle 模式。仅打开 N 个 idle 连接并等待
以下同时执行 10000 个请求来测试 redis 性能:
assad@DESKTOP-assad:/etc/redis$ sudo redis-benchmark -n 100000
[sudo] password for assad:
====== PING_INLINE ======
100000 requests completed in 1.55 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.83% <= 1 milliseconds
100.00% <= 1 milliseconds
64308.68 requests per second
====== PING_BULK ======
100000 requests completed in 1.55 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.81% <= 1 milliseconds
100.00% <= 1 milliseconds
64516.13 requests per second
====== SET ======
100000 requests completed in 1.55 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.91% <= 1 milliseconds
100.00% <= 1 milliseconds
64516.13 requests per second
====== GET ======
100000 requests completed in 1.56 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.86% <= 1 milliseconds
100.00% <= 1 milliseconds
63938.62 requests per second