主要从指令(略),淘汰机制,发布订阅,集群宕机,集群扩展,主从复制,数据迁移来了解redis
淘汰机制
redis的淘汰机制分为6种,分别为:
- noeviction(默认):当内存使用达到阈值的时候,所有引起申请内存的命令会报错,俗称不淘汰。
- allkeys-lru:在主键空间中,优先移除最近未使用的key。
- volatile-lru:在设置了过期时间的键空间中,优先移除最近未使用的key。
- allkeys-random:在主键空间中,随机移除某个key。
- volatile-random:在设置了过期时间的键空间中,随机移除某个key。
- volatile-ttl:在设置了过期时间的键空间中,具有更早过期时间的key优先移除。
前值指范围:allkeys(全部)、volatile(会过期的),后值指策略:lru(最近未使用)、random(随机)、ttl(最早过期优先)
发布订阅
redis的发布订阅功能相对比较简陋,不支持协议,不支持持久化功能,不支持消息传输保障,是较轻量级的发布订阅系统。
集群宕机
集群宕机的几个条件(满足其一即可):
- 半数以上的master节点宕机
- 某个节点的master和slave全部宕机 如何判断节点宕机:半数以上节点没有得到该节点的回复(心跳机制),则视为宕机。
集群扩展
集群添加节点后,新节点是没有数据的,需要手动分槽,redis的集群是通过槽的分配实现的。
主从复制
默认master负责读写,slave只负责备份,也可通过配置(slave-read-only)使得slave可读可写(写实际是转到maste),但需要过滤slave中的无效数据(不会删除过期数据)。主从复制是异步的,受网络影响存在延迟,同时jedis客户端不提供自动从slave节点读数据的方法,所以需要从代码层面自己封装。
数据迁移
通过使用唯品会开发的redis-migrate-tool工具进行数据迁移。见另一篇文章。