String
set key1 v1
get key1
keys *
exists key1
append key1 "hello"
get key1
strlen key1
append name "zhangshan" #如果不存在key,相当于set
网站浏览量
set views 0
get views
"0"
incr views
"1"
decr views
"0"
步长(INCRBY可以设置步长)
incrby views 10
decrby views 10
截取(GETRANGE)
getrange key1 0 3 #[0 ~ 3]
getrange key1 0 -1 #全部字符串
替换
setrange key2 1 xx
get key2
设置过期时间
setex key3 30 "hello"
不存在在设置(在分布式锁中常用)
setnx mykey "redis"
setnx mykey "mongodb"
get mykey
"redis"
批量设置和获取
mset k1 v1 k2 v2 k3 v3
keys *
mget k1 k2 k3
msetnx k1 v1 k4 v4 #批量设置不存在
这里是一个巧妙的key
set user:1:name zhangshan
先get后set(更新)
getset db redis
get db
"redis"
getset db "mongodb"
get db
"mongodb"
List
在redis中可以把List完成栈、队列、阻塞队列
lpush list one # 值插入到列表的头部
lpush list two
lpush list three
lrange list 0 -1
lrange list 0 1
Set
集合中的值不能重复
sadd myset "hello"
smembers myset
sismember myset hello
srem myset hello
scard myset
3元素的个数
srandmember myset #随机抽出一个元素
Hash
想象成一个map集合,本质和String没有太大的区别,还是一个简单的key-value!
key-key-value
set myhash field value # 首先知道hash的结构 多了一层
hmset myhash f1 v1 f2 v2
hmget myhash f1 f2
hgetall myhash # 获取全部数据
hdel myhash field1 # 删除hash指定key
Zset(有序集合)
在set的基础上增加了一个值(序号)
zadd myset 1 one # 1是序号