redis 字符串基本的理论
常用的有 setnx, set xx, 还有 exists key
命令演示:
项目业务中,如果有多次 get, 可以考虑使用 mget,mset 等,批量命令打包发给 redis 服务器,节省网络时间
1次 mget = 1次网络传播+ N次命令耗费时间
除此之外,还有一些比较偏的命令
比如 incrbyfloat ,incrby,setrange,getrange 等等
incr k
incrby k 10
decrby k 9
decr k
字符串的 range 命令:
如果要获取全部的字符串的话,可以
getrange k 0 -1
替换字符,使用 setrange k i j 命令
setnx k v
mset k1 v1 k2 v2 k3 v3
msetnx k1 v1 k2 v2
msetnx 如果不存在,就创建==(注意,msetnx 是一个原子性的操作,要么一起成功,要么一起失败)==
代码中,不一定要存一个打 json对象,可以把对象拆分存储
mset user:1:name tom user:1:age 18
mget user:1:name user:1:age
这样子做,就不用每次更新一个大json 串
还有一种 getset的 命令
getset id v1
getset id v2
getset id v3
可以使用 这个 getset命令 实现一个 乐观锁,进行版本对比。
string类型的使用场景:
- 计算器
- 统计多单位的数量 (mset,mget, 单个get,单个 set)