Redis数据类型(1)
简介
- 可做数据库、缓存、消息中间件MQ
数据类型
Redis-Key使用
判断key存在
1
EXISTS keyName
移除key值
1
move keyName DataBaseNum键值名|数据库索引
设置key值过期时间
1
EXPIRE keyName seconds key名称|过期时间
查看key的数据类型
1
type keyName
更多常用命令可参考redis官方文档
redis中文文档(常用命令)
String
追加键值:APPEND keyName str
1
APPEND keyName str
变更加操作 incr keyName
1
INCR keyName
减操作decr keyName
1
decr keyName
步长:增:incrby keyName step减:decrby keyName step
1
2incrby keyName step # 增
decrby keyName step # 减获取指定索引字符串:GETRANGE keyName indexStart indexEnd 0,-1代表字符串全部
1
2# 0,-1代表字符串全部
GETRANGE keyName indexStart indexEnd替换值:setrange keyName index str
1
setrange keyName index str
设置过期时间
setex 设置值多久过期
1
setex key time
setnx 如果key存在则创建失败
1
setnx key
批量设置
mset:批量设置;mget:批量获取
1
2mset key1 val1 key2 val2
mget key1 key2msetnx:要么一起成功,要么一起失败
1
msetnx key1 val1 key2 val2
对象
设置和获取对象对象
1
2
3
4# 设置
MSET user:1:name lchyang user:1:age 18
# 获取
MGET user:1:name user:1:age获取并设置
1
2
3# 如果不存在,则返回nil
# 存在,获取原来的值并设置新的值
GETSET originKey updateValue使用场景
计数器
统计多单位的数量:uid:893489:follow 0
粉丝数
对象缓存存储
List
- redis里面,可以将list变成,栈、队列、阻塞队列
添加 LPUSH list xx 插入列表 可重复值
1
LPUSH list xxx
获取 LRANGE list 0 -1 区间获取
1
2LRANGE list 0 -1
# 先进的在最后插入 Rpush list value 插入的值在首位
1
RPUSH list value
移除值:LPOP 左开始 RPOP 右开始
1
2
3LPOP list
RPOP list
LRANGE list 0 -1查看长度 LLEN list
1
LLEN list
移除指令 LREM list 2 three
1
LREN list 2
截取指定长度的值 LTRIM mylist 1 2 下标
1
LTRIM mylist 1 2 下标
移除旧值到新列表 RPOPLPUSH mylist myotherlist
1
RPOPLPUSH mylist myotherlist
更新值 lset list 0 “item”
1
lset list 0 "item"
指定位置插入值 LINSERT mylist before “world” “other”
1
LINSERT mylist before "world" "other"
小结
- 他实际上是一个链表、before Node after,left、right都可以插入值
- 如果key不存在,创建新的链表
- 如果key存在,新增内容
- 如果移除了所有值,空链表、也代表不存在
- 两边插入或改动,效率最高、中间元素、相对来说效率低
- 消息排队:消息队列(Lpush、Rpop) 栈(Lpush,Lpop)