Redis 是一个基于内存的高性能key-value数据库。
一、redis的数据结构
字符串
哈希,相当于java中的map
列表list
集合
有序的集合
二、redis的持久化
快照(某一时刻所有数据写到硬盘上)
aof(记录每条操作的命令)
三、redis和memcache的比较
redis是单核而memcache是多核,当数据量比较大的时候memcache的性能会比redis高
memcache只有简单k/v类型数据,redis提供了更丰富的数据结构
redis不仅仅把数据都存储到内存中,还有磁盘中也会存储,便于持久化
四、redis的淘汰策略
noeviction:当内存使用达到阈值的时候,所有引起申请内存的命令会报错(默认策略)。
allkeys-lru:在主键空间中,优先移除最近未使用的key。
volatile-lru:在设置了过期时间的键空间中,优先移除最近未使用的key。
allkeys-random:在主键空间中,随机移除某个key。
volatile-random:在设置了过期时间的键空间中,随机移除某个key。
volatile-ttl:在设置了过期时间的键空间中,具有更早过期时间的key优先移除。
五、redis的主从复制
主从刚刚连接的时候,进行全量同步;全同步结束后,进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。
六、redis的分布式锁
可以参考Redis分布式锁的正确实现方式