String字符串

代码 解释
set key value 设置值
get key 获取值
key * 获取所有的key
exists key 判断值是否存在
append key value 追加值,如果key不存在,相当于set key
strlen key 获取值的长度
incby key [step] 自增,可以设置步长
decby key [step] 自减,可以设置步长
getrange key [stat_num, end_num] 截取字符串 闭区间[0,3] 0,1,2,3
getrange key 0 -1 和get key 结果一致
setrange key start_num newval 替换指定位置开始的字符串
setex 值存在,再设置
setnx 值不存在,再设置 分布式锁常用
ttl key 获取值的剩余时间
mset k1 v1 k2 v2 批量设置
mget k1 k2 批量获取
msetex k1 k2 值存在,批量设置 原子操作,要么一起成功,要么一起失败
msetnx k1 k2 值不存在,批量设置
getset key value 返回当前值,并更新 如果值不存在,返回nil

getset 先get后set

127.0.0.1:6379> getset db redis #如果不存在值,则返回nil

(nil)

使用实例:记录用户登录次数

set user:1:logins 1

事务

redis单条命令保证原子性,但事务不保证原子性

redis中事务的本质是一组命令的集合。一个事务中的命令都会被序列化,在事务执行的过程中,会按照顺序进行执行。

—- 队列 set set set … 执行 —

  • 开始事务
  • 命令入列
  • 执行事务
方法 解释
multi 开启事务
exec 执行事务
discard 取消事务
127.0.0.1:6379>multi #开启事务
OK
#命令入列
127.0.0.1:6379>set k1 v1
QUEUED
127.0.0.1:6379>set k2 v2
QUEUED
127.0.0.1:6379>get k1
QUEUED
127.0.0.1:6379>exec #执行事务
#执行结果
1) ok
2) ok
3) "v2"

 

 

 

 

作者 admin

百度广告效果展示