汇总贴,记录了自己对redis的一些感想。当前redis版本4.0。
一、关于主从复制
1.1:主从的关联
关于“主”redis,不需要配置和记录哪些redis是它的从。我们只需要在“从”上配置它的“主”即可。
配置方式分为静态和动态配置。
静态配置:在“从”redis的redis.conf文件中,显示指定主redis的ip和端口,如下所示
slaveof 192.168.122.21 6379
动态设置:通过redis-cli 连接到从节点服务器,执行下面命令即可。效果与静态配置一样
slaveof 192.168.122.21 6379
这样,从redis就可以定时通过向主redis发送请求获取同步信息了。另外,开启主从复制的前提,是至少要开启rdb持久化。
1.2:主从配置文件(redis.conf)的区别
Redis主从的配置文件以“主”的配置文件最重要。
1.2.1:需要在“主”的配置中打开持久化(特指RDB方式)。这涉及到redis主从的原理(不断将主的信息以RDB快照的形式发给从)。“从”不需要打开持久化,包括RDB和AOF。
1.2.2:像1.1中所说,只需要在“从”的配置中指定“主”的ip和端口即可建立主从关系
1.2.3:无论主从,都需要将“bind <ip> <port>”属性配置为当前服务器的个性化ip和端口。
二、关于持久化
分为rdb和aof。
rdb的优缺点:
rdb的原理是定时快照。其好处是可以将某个瞬时的全量数据都记录下来。代价就是当数据量太大的时候,做快照的时间太久(大约一秒以上),同时由于rdb的机制,我们不可能实时做快照,因此两次快照之间一定有时间间隔。那么一旦在时间间隔中redis宕机,那么就会损失数据。
大规模恢复数据时,或者对数据一致性要求不高的场景,rdb是个不错的方法。
恢复时,将dump.rdb 文件拷贝到redis的安装目录的bin目录下,重启redis服务即可。但由于在实际中rdb文件可能会损坏,因此使用备份的rdb文件来做恢复工作(换言之,需要经常对rdb文件再做备份)
aof的优缺点:
aof原理是redo-log。记录了从本次启动redis后的每一次增删改操作的日志。其好处是当redis异常宕机,那么可以根据redo-log, 将redis中的数据重做出来。代价在于,它需要记录每一步的操作,随着时间的增长,aof文件会越来越大。重做时间也会非常久。
aof在数据一致性要求很高的场景表现很好。
三、关于数据结构
redis的数据结构较简单。分别为:string、set、sorted set、hash、list。其核心都是字符串
四、关于高可用
暂无
五、关于性能
对于RDB而言,建议开启rdb文件的压缩模式,否则rdb文件会超大。。。
对于AOF而言,默认策略是一秒一次,所以丢数据最多丢一秒的。。。
六、技巧
问题一:
当我使用以下命令登录redis的时候,报错
./redis-cli -h 192.168.122.21 -p 6379 -a xxyyzz_1234
Warning: Using a password with '-a' option on the command line interface may not be safe.
遇到这个情况,可以先连上redis,然后再鉴权,如下操作
[root@xxCentos7One src]# ./redis-cli -h 192.168.122.21 -p 6379
192.168.122.21:6379> auth xxyyzz_1234
OK