Redis学习笔记01
引言
这个系列记录redis 的核心笔记,主要是复习了一遍之前看的视频,总结了一下核心知识点。
redis 数据模型
String : 任何文件都可以以二进制方式,数据安全。图片,文本,数字
set name "learn redis"
get name
value也可以是数字
set count 1
incr count
get count
应用场景:获取用户每天访问csdn次数
incr user_id210505
Hash:相当于字典,用于存储对象
List:有序,插入元素的顺序:回帖排行
lpush
lrange
Set:无序,去重:应用场景:微博共同关注,共同喜好,好友,粉丝
sadd myset xxx
smembers myset
Sortted set:有序,集合
hyperloglog:计数
geo:存储地理位置信息
为什么redis 快
qps 10w
- 基于内存
- 数据结构简单 ,nosql, 不需要表关联
- 采用单线程,io多路复用
主线程是单线程的,避免上下文切换,锁竞争,造成卡顿
io多路复用:select 系统调用函数,监听文件fd ,可读可写
其他多路复用函数epoll ,kqueue > select
redis 根据开发环境选择合适的,优先选择O(1)
基于react 设计模式,监听io
从海量key 查询出指定的key
数据量小,用keys k*
数据量大,客户端容易卡,用scan (cursor) match k* count (number)
基于游标,每次返回少量key
问题:重复的key, 在外部程序里去重,在java 里面可以用hashset 遍历scan , key ,
每天进步一点点,梦想就会实现,加油:)