Redis键(key)
命令:keys *
作用:查看当前库的所有键
命令:exists [key]
作用:判断某一个key是否存在
命令:ttl [key]
作用:查看key还有多少秒过期,-1表示永不过期,-2表示已经过期
命令:expire [key] [second]
作用:给key设置过期时间,单位秒,过期后生命周期终结
命令:type [key]
作用:查看key的类型
命令:del [key]
作用:删除key
Redis字符串(String)
命令:set [key] [value]
作用:设置字符串键值
如果key存在,这时候set进相同的key,那么会覆盖掉以前的value
命令:get [key]
作用:获取字符串值
命令:append [key] [value]
作用:追加value到key中
命令:strlen [key]
作用:获取value的长度
命令:incr [key]
作用:使key的value值加1(value必须为纯数字)
命令:incrby [key] [number]
作用:使key的value值加上number
命令:decr [key]
作用:使key的value值减去1
命令:decrby [key] [number]
作用:使key的value值减去number
命令:getrange [key] [开始索引] [结束索引]
作用:截取子串
索引从0开始
命令:setrange [key] [开始索引] [子串]
作用:设置子串,从[开始索引]设置[子串]
命令:setex [键] [秒] [值]
作用:设置键值的生存周期,单位为秒
过期后生命周期终结,无法读取,-1为永不过期,-2为已经过期
命令:setnx [key] [value]
作用:设置key和value,如果有重复key返回0,无法设置,通过没有重复key则返回1,设置成功
命令:mset [key] [value] [key] [value] [key] [value] ...
作用:设置多个键值,m代表more
命令:mget [key] [key] [key] [key] ...
作用:获取多个键值,m代表more
命令:msetnx [key] [value] [key] [value] [key] [value] ...
作用:设置key和value,如果有重复key返回0,无法设置,通过没有重复key则返回1,设置成功
注意:如果有一个或多个键已经存在,那么全部都无法设置
Redis 集合(List)
单值多value
命令:lpush [listname] [value] [value] [value]...
作用: 设置一个集合,正进反出
命令:rpush [listname] [value] [value] [value]...
作用:设置一个集合,正进正出
命令:lrange [listname] [开始索引] [结束索引]
作用:截取[listname]的子串
命令:lpop [listname]
作用:栈顶出栈一个
注意:出栈后就没有在list里了
因为list01和list02采用的创建方式不一样,所以栈顶元素不一样
命令:rpop [listname]
作用:栈底出栈一个
注意:出栈后就没有在list里了
命令:lindex [listname] [索引]
作用:按照索引获得元素(从上到下)
命令:llen [listname]
作用:获取[listname]的长度
命令:lrem [listname] [n] [value]
作用:去除[listname]中的[n]个[value]
命令:ltrim [listname] [开始索引] [结束索引]
作用:将下标为[开始索引]到[结束索引]的值给截取出来后付给[listname]
命令:rpoplpush [listname1] [listname2]
作用:将 listname1 的栈底元素压到 listname2 的栈顶
命令:lset [listname] [index] [value]
作用:将索引处的值替换为value
命令:linsert [listname] [before]/[after] [value1] [value2]
作用:在 value1 之前/之后 插入 value2
性能总结
- List是一个字符串链表,left、right都可以插入添加;
- 如果键不存在,创建新的链表;如果键已存在,新增内容;
- 如果值全移除,对应的键也就消失了。
- 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
Redis集合(Set)
单值多value不能重复
命令:sadd [setname] [value] [value] [value]...
作用:将 value 加到集合 setname 中,没有集合就创建并加入
如果有重复值,会自动去除
命令:smembers [setname]
作用:查看set集合中的value
命令:sismember [setname] [value]
作用:查看 setname 中是否存在 value ,存在返回1 ,不存在返回0
命令:scard [setname]
作用:查看 setname 集合中有多少元素
命令:srem [setname] [value]
作用:删除集合中的值
命令:srandmember [setname] [number]
作用:随机获取出 number 个数
命令:spop [setname]
作用:随机出栈一个
命令:smove [setname1] [setname2] [value1]
作用:将 setname1 中的 value1 赋给 setname2
如果 setname1 中不存在value1 那将返回0,代表失败
命令:sdiff [setname1] [setname2] [setname3] ...
作用:查看两个或以上集合的差集(即第一个有,后面任何一个都没有的)
命令:sinter [setname1] [setname2] [setname3] ...
作用:查看两个或以上集合的交集
命令:sunion [setname1] [setname2] [setname3] ...
作用:查看两个或以上集合的并集
Redis哈希(Hash)
K/V模式不变,但是V是一个键值对
命令:hset [keys] [key] [value]
作用:设置一个 hash,K为 keys,V为 key 和 value
命令:hget [keys] [key]
作用:获取 keys 的一个 key 值
命令:hmset [keys] [key] [value] [key] [value] ...
作用:设置 keys 的多个 key 值
命令:hmget [keys] [key] [key] ...
作用:获取 keys 的多个 key 值
命令:hgetall [keys]
作用:获取 keys 的所有 key 键值
命令:hdel [keys] [key]
作用:删除 keys 中的一个 key 键值
命令:hlen [keys]
作用:查看 keys 中 key 的个数
命令:hexists [keys] [key]
作用:判断 keys 中是否含有 key
命令:hkeys [keys]
作用:查看 keys 中有多少个 key
命令:hvals [keys]
作用:查看 keys 的key值有哪些
命令:hincrby [keys] [key] [number]
作用:使 keys 中的 key 值加上 number(number必须为整数值)
命令:hincrbyfloat [keys] [key] [number]
作用:使 keys 中的 key 值加上 number (number必须为浮点数)
命令:hsetnx [keys] [key] [value]
作用:创建 keys 中的 key/value 键值对,如果存在键值对,返回0,创建失败,反之返回1,创建成功
Redis 有序集合(Zset)
在set
的基础上,加上一个score值(score从小到大,而自上而下排列,),
之前set
为 k1 v1 v2 v3,
现在Zset
为 k1 score1 v1 score2 v2
命令:zadd [zsetname] [score1] [value1] [score2] [value2] ...
作用:添加一个 zsetname 作为zset集合,值有 value1 value2 …
命令:zrange [zsetname] [开始索引] [结束索引] withscores
作用:查看 zsetname 中 开始索引 到 结束索引 的 value 值,后面的 withscore 可选,带上 withscores score 也会显示出来
命令:zrangebyscore [zsetname] [score1] [score2]
作用:获取 zsetname 中 score1 到 score 2 中间的 value
zrangebyscore [zsetname] ([score1] ([score2]
(
代表不包含
zrangebyscore [zsetname] [score1] [score2] limit [开始索引] [步数]
limit
代表限制返回结果的个数
命令:zrem [zsetname] [value]
作用:删除 zsetname 中值为 value 的项
命令:zcard [zsetname]
作用:获取 zsetname 中 value 的个数
命令:zcount [zsetname] [score1] [score2]
作用:统计 zsetname 中 score1 到score 2 的个数
命令:zrank [zsetname] [value]
作用:获取 zsetname 中值为 value 的下标
命令:zscore [zsetname] [value]
作用:获取 zsetname 中值为 value 的 score
命令:zrevrank [zsetname] [value]
作用:获取 zsetname 中值为 value 的项的逆序下标
命令:zrevrange [zsetname] [开始索引] [结束索引]
作用:获取 zsetname 中从 开始索引 到 结束索引 的逆序
命令:zrevrangebyscore [zsetname] [开始索引] [结束索引]
作用:获取 zsetname 中从 开始索引 到 结束索引 的逆序(开始索引和结束索引也要倒过来)