redis集群运维

Redis 的数据类型?

Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zsetsorted set(有序集合)

redis优势
速度快,因为数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是 O1)
支持丰富数据类型,支持 string,list,set,Zset,hash 等
支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
丰富的特性,可用于缓存,消息,按 key 设置过期时间,过期后将会自动删除

Redis 是单进程单线程的,Redis 利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销。

一个字符串类型的智能存储最大容量是多少?

512M。

Redis 的持久化机制是什么?各自的优缺点?

Redis提供两种持久化机制 RDB 和 AOF 机制:

RDB(Redis DataBase)持久化方式:是指用数据集快照的方式半持久化模式记录 Redis 数据库的所有键值对,在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。

优点:

只有一个文件 dump.rdb,方便持久化。
容灾性好,一个文件可以保存到安全的磁盘。
性能最大化,fork 子进程来完成写操作,让主进程继续处理命令,所以是 IO 最大化。使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 Redis的高性能。
相对于数据集大时,比 AOF 的启动效率更高。

缺点:数据安全性低。RDB 是间隔一段时间进行持久化,如果持久化之间 Redis 发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候
AOF(Append-only file)持久化方式:是指所有的命令行记录以 Redis 命令请求协议的格式完全持久化存储保存为 aof 文件。

优点:

数据安全,aof 持久化可以配置 appendfsync 属性,有 always,每进行一次命令操作就记录到 aof 文件中一次。
通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof 工具解决数据一致性问题。
AOF 机制的 rewrite 模式。AOF 文件没被 rewrite 之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的 flushall)

缺点:

AOF 文件比 RDB 文件大,且恢复速度慢。
数据集大的时候,比 RDB 启动效率低。


Redis 过期键的删除策略?

定时删除:在设置键的过期时间的同时,创建一个定时器 timer。让定时器在键的过期时间来临时,立即执行对键的删除操作。
惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。
定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定


Redis Sentinal 着眼于高可用,在 Master 宕机时会自动将 slave 提升为master,继续提供服务。

Redis Cluster 着眼于扩展性,在单个 Redis 内存不足时,使用 Cluster 进行分片存储

Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽,集群的每个节点负责一部分 hash 槽。

Redis key 的过期时间和永久有效分别怎么设置?

EXPIRE 和 PERSIST 命令。
作者:tigergao
功不唐捐 玉汝于成
原文地址:https://www.cnblogs.com/tigergaonotes/p/14883582.html