redis的常见面试题

1. 什么是redis

它是用C语言编写的高性能非关系型的键值对数据库。
与传统的数据库不同的是redis的数据是存储在内存中的,所以读写速度非常快。因此redis经常被用于做缓存来使用,它每秒可以处理十万次+读写操作,除此之外redis也经常被用作分布式锁。

2. redis支持的数据类型有哪些

1)String:字符串
2)Hash:键值对
3)List:队列
4)Set:集合
5)SortSet:排序集合

3. redis的优缺点

优点:
	1):读写速度非常快,读:11万,写:8万
	2):支持数据持久化:RDB和AOF两种方式
	3):支持事务:redis的所有操作都是原子性,还支持复合操作的原子性。
	4):支持主从复制:主机自动将数据复制给副机,实现读写分离
	5):支持的数据结构丰富:String、Hash、List、Set、SortSet
缺点:
	1):分区时动态扩容或缩容可能非常复杂
	2):同时操作多个key,则不能使用Redis事务。

4. redis的数据淘汰策略

1):volatile-lru:从已设置过期的数据集中挑选最近最少使用的淘汰
2):volatile-ttr:从已设置过期的数据集中挑选将要过期的数据淘汰
3):volatile-random:从已设置过期的数据集中任意挑选数据淘汰
4):allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
5):allkeys-random:从数据集中任意挑选数据淘汰
6):noenviction:禁止淘汰数据
注意:redis淘汰数据时还会同步到AOF

5. redis常见性能问题和解决方案

1):master最好不要做任何持久化工作,比如RDB内存快照和AOF日志文件
2):如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次
3):为了主从复制的速度和连接的稳定性,master和slave最好在同一个局域网内
4):尽量避免在压力很大的库上增加从库
5):主从复制尽量使用单项链表,这样如果主节点宕机,就可以直接启用第一个副节点来当主节点,其他副节点不变。

6. redis哈希槽的概念?

在去中心化集群中,redis将16384个哈希槽平分给所有的主节点,根据这些哈希槽来判断将当前数据放入到哪个主节点中。
在取数据的时候,根据要取数据的key来判断去哪个节点中取出该数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值