一.Redis集群会有写操作丢失吗?为什么?
Redis并不能保证数据的强一致性,这意味着在实际中集群在特点条件下可能会丢失写操作。
二.Redis集群之间是如何复制的?
异步复制。
三.Redis最大节点个数是多少?
16384个。
四.Redis集群如何选择数据库?
Redis集群目前无法做数据库的选择,默认在0数据库。
五.怎么测试Redis的连通性?
使用ping命令。
六.怎么理解Redis事务?
1.事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发来的命令请求所打断。
2.事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
七.Redis事务相关的命令有哪几个?
Multi、Exec、DISCARD、WATCH。
八.Redis key 的过期时间和永久有效分别怎么设置?
EXPIRE 和 PERSIST 命令。
九.Redis如何做内存优化?
尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。
比如你的web系统中有个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,而是应该把这个用户的所有信息存在到一张散列表里面。
十.Redis回收是如何工作的?
一个客户端运行了新的命令,添加了新的数据。Redis检查内存使用情况,如果大于maxMemory的限制,则根据设定好的策略进行回收。一个新的命令被执行,等等。
所有我们不断地穿越内存限制的边界,通过不断达到边界然后不断地回收回到边界以下。如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保存到一个新的键),不用多久内存限制就会被这个内存使用量超越。