目录
String:set [key] [value] 常见的键值对存储
List:rpush [key] [value1] [value2]列表插入
Hash:hset [key] [field] [value],与Map一致
zSet:zadd [key] [score] [value] 有序集合
什么是redis?
Redis是一个非关系数据库,我们项目中主要用它来存储热点数据的,减轻数据库的压力,单线程纯内存操作,采用了非阻塞IO多路复用机制,就是单线程监听。
什么是I/O多路复用?
IO 多路复用是一种同步 IO 模型,实现一个线程可以监视多个文件句柄。一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,交出 cpu。IO 是指网络 IO,多路指多个TCP连接(即 socket 或者 channel),复用指复用一个或几个线程。
意思说一个或一组线程处理多个 TCP 连接。最大优势是减少系统开销小,不必创建过多的进程/线程,也不必维护这些进程/线程。
redis常用的几种数据结构?
String:set [key] [value] 常见的键值对存储
应用场景: 1. 不常改变的数据: 缓存组织机构、用户权限、单点登录key等
2. redis原子性相关操作: 加锁:setnx "aaaa"; expire "aa" 60,限制60s
3. setbit和getbit实现布隆过滤器:缓存所有商品信息,防止缓存击穿
List:rpush [key] [value1] [value2]列表插入
应用场景:点赞列表
Hash:hset [key] [field] [value],与Map一致
应用场景:以用户id为key,商品id为field,商品数量为value的场景
Set:sadd [key] [value] 去重列表
应用场景:抽奖人数去重
zSet:zadd [key] [score] [value] 有序集合
应用场景: