Redis集群没有使用一致性hash,而是引入了哈希槽的概念,Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。
34、Redis集群的主从复制模型是怎样的?为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所以集群使用了主从复制模型,每个节点都会有N-1个复制品.
35、Redis集群会有写操作丢失吗?为什么?Redis并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。
36、Redis集群之间是如何复制的?异步复制
37、Redis集群最大节点个数是多少?16384个。
38、Redis集群如何选择数据库?Redis集群目前无法做数据库选择,默认在0数据库。
39、怎么测试Redis的连通性?ping
40、Redis中的管道有什么用?一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应。这样就可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。
这就是管道(pipelining),是一种几十年来广泛使用的技术。例如许多POP3协议已经实现支持这个功能,大大加快了从服务器下载新邮件的过程。
41、怎么理解Redis事务?事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
42、Redis事务相关的命令有哪几个?MULTI、EXEC、DISCARD、WATCH
43、Rediskey的过期时间和永久有效分别怎么设置?EXPIRE和PERSIST命令。
44、Redis如何做内存优化?尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。比如你的web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,而是应该把这个用户的所有信息存储到一张散列表里面。
45、Redis回收进程如何工作的?一个客户端运行了新的命令,添加了新的数据。
Redi检查内存使用情况,如果大于maxmemory的限制,则根据设定好的策略进行回收。一个新的命令被执行,等等。
所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断地回收回到边界以下。
如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保存到一个新的键),不用多久内存限制就会被这个内存使用量超越。
更多编程相关知识,请访问:编程视频!!
以上就是总结分享一些关于redis缓存的面试题的详细内容!
查看更多关于总结分享一些关于redis缓存的面试题的详细内容...