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