Redis笔记

1.Redis的五种基本数据结构:STRING(字符串)、LIST(列表)、SET(集合)、HASH(哈希散列表)、ZSET(有序集合);在字符串的基本上演变出Bitmaps(位图)和HyperLogLog(基数);以及配合LBS发展而产生的GEO(地理信息定位)。


2.key超时了,Redis不会立刻回收,而会被标记成超时。Redis提供了定时回收和惰性回收两种方式。


3.Redis存在两种备份方式:RDB和AOF;RDB恢复速度更快,但是开销大,不适合实时持久化,一般用于数据冷备和复制;


4.Redis内存回收策略:当Redis的内存达到规定的最大值时,提供6种方式淘汰键值对。

~最近最少前提下,回收超时键值对

~对所有键值对采用最近最少策略

~随机删除超时键值对

~随机删除所有键值对(不常用)

~采用存活时间最短策略(TTL)

~不淘汰,只报错


5.哨兵模式配合主从复制完成集群搭建


6.Redis常用命令:

~    keys * :查看所有键

~    dbsize: 查看键总数

~    exists [key]:检查键是否存在

~    del [key ...]:删除键

~    expire [key] [seconds]:设置过期时间

~    type [key]:显示键的数据结构类型


7.Redis单线程模型高性能的原因

~    纯内存访问是高速响应的基础;

~    使用I/O多路复用技术实现非阻塞I/O;

~    单线程避免了线程切换和竞态产生的消耗。


8.Redis数据类型的动态内部实现

~    string:int(8个字节的长整形)、embstr(小于等于39个字节的字符串)、raw(大于39个字节的字符串);

~    hash:ziplist(压缩列表)、hashtable(哈希表);前者占用空间小,后者在键值对大时效率高;

~    list:ziplist、linkedlist、quicklist;

~    set:intset(整数集合)、hashtable;

~    zset:ziplist、shiplist(跳跃表)


9.Redis阻塞原因:慢查询、CPU过载、AOF阻塞;CPU竞争、内存交换、网络问题。


10.Redis内存优化思路:

~    精简键值对大小,使用高效二进制序列化器

~    使用对象共享池优化小整数对象

~    数据优先使用整数,比字符串类型节省空间

~    优化字符串使用,避免预分配造成的内存浪费


11.穿透优化:缓存空对象;缓存过滤器。


12.雪崩优化:保证缓存层高可用;限流并降级;提前演练。


13.热点key重建优化:分布式锁;永不过期。

你可能感兴趣的:(Redis笔记)