- 无序列表
- 有序列表
- 字符串
- 哈希值
- 列表
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 @hash
help @list
help @set
help @sorted_set
set集合
s, set的缩写
存放,不能重复的值
没有顺序,不能排序
SADD
sadd 添加集合
smembers 查看集合,查询
srem 删除集合
sunion 合并集合
# sunion list group
sinter 交集
# sinter list group
sdiff 差集
# sdiff list group
获取集合元素数量
删除
交集
差集
并集
抽奖
正数,只有一个人能中奖
负数,每个人会重复中奖
spop
sunionstore dest
<a name="VHwLX"></a>
### bitmap
二进制
<a name="Np5LL"></a>
## sort set有序列表
还是集合,不能放重复的数据<br />删除的不是下标,而是值
- 排序
- 价格
```bash
ZADD
zadd
zrem
zange
withScores
zcard
查看元素
zadd price 20.99 apple 100 apple 200 orange
ZRANGE price 0 -1
zrange price 0 -1 withscores # 价格排行榜
zrange price apple
zscore price orange
删除
ZREM
排行榜
zadd price 20.99 apple 100 apple 200 orange
ZRANGE price 0 -1
zrange price 0 -1 withscores
zrange price apple
zrevrange price 0 1
zscore price orange
zscan price apple
redis如何维护有序列表
skiplist 跳表
string字符串
存放二进制的字符串
存储对象,直接把 对象 JSON.stringify 转化为字符串,存入到 redis
set 设置
get 获取
getrange 获取范围,默认从 0开始,类似js的下标
del 删除
incr 增加,针对数字类型的
decr 减少
秒杀
秒杀是独立的 key
incr 加一
incr phone
incr phone
incr phone
set & get
expire
过期时间,默认 秒,s
hash哈希值
h, hash的缩写
hm, hashmore 多获取几个
hset
hget
hmget
hgetall
hvals list #
hdel
hkeys
hincrby 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