redis(Remote DIctionary Server)是用C语言开发的key-value单线程(线程安全)的nosql数据库。
使用场景
- 热点数据缓存。
- token或者分布式session
- 短信验证码
- 分布式锁
- 网站计数器
- 发布订阅(不建议使用)
支持的数据类型
- String:字符串
- Hash:散列
- List:列表
- Sorted Set:有序集合
- Set:集合
主从复制
场景:集群、读写分离、日志备份、高可用
一主多从(只能有一个主服务器):主服务器负责读和写操作,从服务器负责读操作。
原理
配置
从服务器配置:
#master ip及端口号
slaveof masterIP port
#master 密码
masterauth password
哨兵机制
场景:redis服务的心跳检测、故障转移、监控
持久化
RDB(Redis Database)
redis默认开启的持久化方式,以二进制文件进行快照存储,而且是以某个时间点每隔一段时间执行一次持久化操作,实时性不好。
适合于持久化大规模数据且对数据的完整性、一致性要求不高的情况。
AOF(Append Only File)
记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,一般每隔1s进行aof文件重写操作,数据完整性、一致性比较高,占用磁盘空间比较大、恢复速度不如RDB方式。