3.12 Redis-cli命令行其他操作
1. echo :在命令行打印一些内容
redis 127.0.0.1:6379> echo HongWan "HongWan"
2. quit :退出连接。
redis 127.0.0.1:6379> quit
3. -x选项从标准输入(stdin)读取最后一个参数。 比如从管道中读取输入:
echo -en "chen.qun" | redis-cli -x set name
4. -r -i
-r 选项重复执行一个命令指定的次数。 -i 设置命令执行的间隔。 比如查看redis每秒执行的commands(qps) redis-cli -r 100 -i 1 info stats | grep instantaneous_ops_per_sec 这个选项在编写一些脚本时非常有用
5. -c:开启reidis cluster模式,连接redis cluster节点时候使用。
6. --rdb:获取指定redis实例的rdb文件,保存到本地。
redis-cli -h 192.168.44.16 -p 6379 --rdb 6379.rdb
7. --slave
模拟slave从master上接收到的commands。slave上接收到的commands都是update操作,记录数据的更新行为。
8. --pipe
这个一个非常有用的参数。发送原始的redis protocl格式数据到服务器端执行。比如下面的形式的数据(linux服务器上需要用unix2dos转化成dos文件)。 linux下默认的换行是\n,windows系统的换行符是\r\n,redis使用的是\r\n. echo -en '*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n' | redis-cli --pipe
9. -a
如果开启了requirepass,那么你如果希望调用或者自己编写一些外部脚本通过redis-cli进行操作或者监控redis,那么这个选项可以让你不用再手动输入auth。这个选项很普遍,但是往往被人忽视。
6.13 持久化与备份恢复
3.13.1 RDB相关操作
BGSAVE:后台子进程进行RDB持久化 SAVE:主进程进行RDB,生产环境千万别用,服务器将无法响应任何操作。 LASTSAVE: 返回上一次成功SAVE的Unix时间
动态关闭RDB:
redis-cli config set save ""
动态设置RDB:
redis-cli config set save "900 1"
永久关闭RDB:
sed -e '/save/ s/^#*/#/' -i /etc/redis/redis.conf
永久设置RDB:
在redis.conf中设置save选项
查看RDB是否打开:
redis-cli config get save
空的即是关闭,有数字的都是打开的。
3.13.2 AOF相关操作
BGREWRITEAOF
在后台执行一个 AOF文件重写操作
动态关闭AOF:
redis-cli config set appendonly no
动态打开AOF:
redis-cli config set appendonly yes
永久关闭AOF:
sed -e '/appendonly/ s/^#*/#/' -i /etc/redis/redis.conf (默认是关闭的)
永久打开AOF:
将appendonly yes设置在redis.conf中Redis开发运维实践指南 本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。3.13.3 备份
对于RDB和AOF,都是直接拷贝文件即可,可以设定crontab进行定时备份: cp /var/lib/redis/dump.rdb /somewhere/safe/dump.$(date +%Y%m%d%H%M).rdb
3.13.4 恢复
如果只使用了RDB,则首先将redis-server停掉,删除dump.rdb,最后将备份的dump.rdb文件拷贝回data目录并修改相关属主保证其属主和redis-server启动用户一致,然后启动redis-server。
如果是RDB+AOF的持久化,只需要将aof文件放入data目录,启动redis-server,查看是否恢复,如无法恢复则应该将aof关闭后重启,redis就会从rdb进行恢复了,随后调用命令BGREWRITEAOF进行AOF文件写入,在info的aof_rewrite_in_progress为0后一个新的aof文件就生成了,此时再将配置文件的aof打开,再次重启redis-server就可以恢复了。注意先不要将dump.rdb放入data目录,否则会因为aof文件万一不可用,则rdb也不会被恢复进内存,此时如果有新的请求进来后则原先的rdb文件被重写。
如果只配置了AOF,重启时加载AOF文件恢复数据。
恢复速度参见新浪的测试结果:
这个结果是可信的,在一台SSD、4个CPU的虚拟机上测试为28.3G/s.
检查修复AOF文件:
redis-check-aof data/appendonly.aof