一、Redis概念:
Remote Dictionary Server 远程数据服务,是一个Key-value类型的内存数据库,支持丰富的数据类型,消耗的物理资源是内存。
二、.Redis特点:
1.Redis以内存作为数据存储介质,所以读写效率极高,远超数据库,读取一个256字符的字符串,读取速度达110000次/s,写速度达81000次/s;
2.存储在Redis中的数据是持久化的,断电或重启都不会丢失数据,Redis的存储分为内存存储、磁盘存储和log文件三部分
3.支持主从模式,可以配置集群,更利于支撑起大型项目。
三、Redis支持的数据类型
String、Set、List、hash(哈希)、zset(sorted Set有序集合)
四、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。
五、Redis支持的Java客户端都有哪些?官方推荐用哪个?
Redisson、Jedis、lettuce等等,官方推荐使用Redisson
六、Redis如何设置密码及验证密码?
设置密码:config set requirepass 123456
授权密码:auth 123456
七、Redis集群会有写操作丢失吗?为什么?
Redis并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。
八、Redis集群最大节点个数是多少?Redis集群如何选择数据库?怎么测试Redis的连通性?
1. 16384个 2.Redis集群目前无法做数据库选择,默认在0数据库 3.ping
九、Redis事务相关的命令有哪几个?Redis key的过期时间和永久有效分别怎么设置?
1. MULTI、EXEC、DISCARD、WATCH 2.expire和persist
十、Redis如何做内存优化?
尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。
比如你的web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,而是应该把这个用户的所有信息存储到一张散列表里面。
十一、Redis有哪几种数据淘汰策略?
allkeys-lru:从数据集中选择最近最少使用的数据;
allkeys-random:从数据集中随机挑选数据淘汰;
volatile-lru:从已设置过期的数据集中选择最近最少使用的数据淘汰;
volatile-random:从已设置过期时间的数据集中随机挑选数据淘汰;
volatile-ttr:从已这只过期时间的数据集中选择即将要过期的数据淘汰;
noenviction:禁止淘汰数据;
十二、Redis有哪些适合的场景
1.会话缓存
2.全页缓存
3.队列
4、排行榜/计数器
5.发布订阅