1、什么是 Redis?
- 高性能的K-V数据库,NoSOL数据库
2、Redis 的数据类型?
- string:字符串
- Hash:哈希
- List:连表
- Set:集合
- ZSet:有序集合
3、使用 Redis 有哪些好处?
- 内存存储,6.0之前单线程,所以效率高
4、Redis 相比 Memcached 有哪些优势?
- Memcached 只支持简单字符串
5、Memcache 与 Redis 的区别都有哪些?
数据类型,Redis支持的数据类型丰富,而Memcache支持简单的数据类型,复杂的对象需要开发者自己处理
持久化:redis支持数据的持久化,可以将数据存储在系统磁盘中,重启的时候可以再次载入使用;Memcahe这个不支持数据持久化,
数据一致性:redis是单线程模式,保证了数据按照顺序提交;Memcahe是多核的,需要cas保证数据的一致性。
6、Redis 是单进程单线程的?
- 请求单线程,I/O多路复用,6.0出现了多线程
7、一个字符串类型的值能存储最大容量是多少?
- 512m
8、Redis 的持久化机制是什么?各自的优缺点?
- RDB快照:fork主子进程进行I/O,恢复快;
- AOF:追加记录写操作,三种: always 同步写, no 操作系统决定同步时机, everysec 每秒同步一次
9、Redis 常见性能问题和解决方案:
- Master不做持久化 , 某个Slave开启AOF备份1秒一次
10、redis 过期键的删除策略?
- 定时删除
- 惰性删除:使用时检查是否过期
11、Redis 的回收策略(淘汰策略)?
从已设过期时间:
- volatile-lru:近期最少使用
- volatile-ttl:即将过期
- volatile-random:随机
所有数据中:
- allkeys-lru:近期最少使用
- allkeys-random:随机
no-enviction:禁止淘汰
12、为什么Redis 需要把所有数据放到内存中?
- 读写快