一、append 追加字符串
append name 2222
二、strlen 获取key 字符串长度
strlen name
三、自增、自减
文章浏览量,点赞可以用这种实现。
incr age decr age
注意这里得是数字才可以进行,所以重设置了一个key。String类型除了可以存字符串也可以是数字。
如果要带步长:
incrby age 5 decrby age 8
四、字符串range
getrange name 1 3
getrange name 0 -1
查看全部,跟python里的字符串截取操作类似。
五、替换字符串
指定位置开始替换字符串
setrange name 0 test
六、设置值及其过期时间
setex
setex mykey 60 redis
为指定的 key 设置值及其过期时间。如果 key 已经存在,SETEX命令将会替换旧的值。
setnx
Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。这个在分布式锁中经常用到。
setnx mykey redis333
key存在,则设置失败。
七、批量操作
1. mset、mget
mset,一次性设置多个。
mset k1 v1 k2 v2 k3 v3
mget,一次性获取多个。
mget k1 k2 k3
2. msetnx
注意,这里设置多个值的时候,只要有一个失败,则都不成功。
msetnx k1 v1 k4 v4
八、设置一个json对象
在实际应用中,可能会经常要存一个对象,那么在redis里可以借助冒号:
来进行一些巧妙的设计。
比如 现在要吧{name: pingguo, age:22}
设置给一个user1
,就可以这样:
mset user:1:name pingguo user:1:age 22 mget user:1:name user:1:age
九、getset 先获取再设置
就像字面意思那样,会先get值,然后进行set。
如果不存在值,则返回nil
。如果存在,就获取原来的值,然后set新的值。
getset db mongodb