Redis使用总结

1.为什么用Redis?Redis有什么特点

我们都知道Redis基于内存,除此之外,Redis还有丰富的数据结构类型,I/O多路复用,单线程,减少线程上下文切换

Redis有哪些数据结构?

String,set,list,hash,zset

zset实现原理

跳跃表,也就是并联链表,拥有O(logn)的查找速度,相比于红黑树,不用进行费时的平衡操作,此处引用
cs-notes的一张图
Alt text
在查找时,从上层指针开始查找,找到对应的区间之后再到下一层去查找。下图演示了查找 22 的过程。
Alt text

Redis命令

get,set,sadd,srem,sismember,scard(点赞集合),lpush,rpop(队列相关)

持久化 RDB AOF

RDB把某一时刻所有数据都保存为.rdb文件,存到硬盘上,可以用来同步不同服务器之间的数据。

save命令:阻塞,bgsave:fork一个子进程来执行save操作,父进程可以继续执行读写操作。

AOF把所有的写命令都写到AOF文件末尾
使用AOF来持久化需要设置同步选项,因为写命令是先被存到缓冲区,由操作系统决定什么时候存磁盘,

有三个,always,everysec,no 一般选择everysec,因为always虽然不会丢失数据,但是太耗时,everysec只会丢失一秒,也不会太频繁,no不会给服务器带
来多大性能提升。