127.0.0.1:6379> set key1 v1 设置key1
OK
127.0.0.1:6379> get key1 获取key1
"v1"
127.0.0.1:6379> keys * 获取所有key
1) "key1"
127.0.0.1:6379> exists key1 判断某一个key是否存在
(integer) 1
127.0.0.1:6379> append key1 hello 追加字段,在已有key1后追加,没有的新增
(integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> strlen key1 获取字符串长度
(integer) 7
对于以及存在的key值除了使用setnx之外都是会直接进行覆盖value值
##############自增自减#########################################
incr key 自增 步长为1
decr key 自减 步长为1
incrby key 10 自增 步长为10
decrby key 10 自减 步长为10
##############字符串截获#####################################
127.0.0.1:6379> set key1 dxl,jjjjj
OK
127.0.0.1:6379> get key1
"dxl,jjjjj"
127.0.0.1:6379> getrange key1 0 2
"dxl"
setrange key1 1 kk 对应结果为 dkk,jjjjj
##########过期时间#####################################
setex(set with expire) 设置过期时间
setnx(set if not exist) 不存在设置(在分布式锁中常常使用)
setex key3 30 "hello" 设置key3在30秒后过期
setnx mykey "redis" return 1
setnx mykey "MongoDB" return 0
setnx 返回值为1标识成功,返回值为0表示失败
ttl key3 获取过期时间
###########批量操作#####################################
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k3"
3) "k1"
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
msetnx 是一个原子性的操作,要么一起成功要么一起失败
###########设计对象#####################################
set user:1 {name:dxl,age:18}
mset user:1:name dxl user:1:age 18
getset key redis 不存在返回nil
存在就获取原来的值,并且设置新的值
redis String使用常见使用场景:计数器、统计多单位数量、粉丝数、对象缓存存储