- 无序列表
- 有序列表
- 字符串
- 哈希值
- 列表
redis默认端口:6379
redis文档 https://www.runoob.com/redis/redis-pub-sub.html
redis基本用法
- keys 查看所有数据
- type 判断类型
- expire 设置过期时间
- flushall 清空整个 Redis 服务器的数据
- redis最常用的是 get,set, publish
help @string # 查看 String key的属性help @hashhelp @listhelp @sethelp @sorted_set
set集合
s, set的缩写
存放,不能重复的值
没有顺序,不能排序
SADDsadd 添加集合smembers 查看集合,查询srem 删除集合sunion 合并集合# sunion list groupsinter 交集# sinter list groupsdiff 差集# sdiff list group

获取集合元素数量
删除
交集
差集
并集
抽奖
正数,只有一个人能中奖
负数,每个人会重复中奖
spop
sunionstore dest
<a name="VHwLX"></a>### bitmap二进制<a name="Np5LL"></a>## sort set有序列表还是集合,不能放重复的数据<br />删除的不是下标,而是值- 排序- 价格```bashZADDzaddzremzangewithScoreszcard
查看元素
zadd price 20.99 apple 100 apple 200 orangeZRANGE price 0 -1zrange price 0 -1 withscores # 价格排行榜zrange price applezscore price orange
删除
ZREM
排行榜
zadd price 20.99 apple 100 apple 200 orangeZRANGE price 0 -1zrange price 0 -1 withscoreszrange price applezrevrange price 0 1zscore price orangezscan price apple
redis如何维护有序列表
skiplist 跳表
string字符串
存放二进制的字符串
存储对象,直接把 对象 JSON.stringify 转化为字符串,存入到 redis
set 设置get 获取getrange 获取范围,默认从 0开始,类似js的下标del 删除incr 增加,针对数字类型的decr 减少

秒杀
秒杀是独立的 key
incr 加一
incr phoneincr phoneincr phone
set & get

expire
过期时间,默认 秒,s
hash哈希值
h, hash的缩写
hm, hashmore 多获取几个
hsethgethmgethgetallhvals list #hdelhkeyshincrby user age -1 # 减一
{school: { name: 'longwen', age: 200 }}


商品详情页
一个商品的详情来自不同的数据库
首次访问,聚合数据,做缓存;后面的访问请求缓存
一级流量,多级缓存
list列表&链表
l,就是 list的缩写;方向 left的意思
列表就是链表
- 双向链表
- 栈,同向命令
- 队列,异向命令
- 数组
- LTRIM,评论列表 ```bash lpush # 压入 lpop # 弹出
lrange 查询范围
lrem 删除, # lrem list 0 0,(删除的属性,删除几个,下标) lindex 查询下标
ltrim # 删除区间之外的,分页的场景应用 ltrim list 0 -2 # 删除最后一个
rpop # 右pop rpush
```

lrem 删除
lrange 0 -1
