Redis基本命令
select [index]
选择库
keys *
查询当前库中的所有key
exists [key]
判断这个key是否存在
返回 1: 表示key存在 0: 表示key不存在
type [key]
判断这个key的类型
del [key]
删除这个key
返回 1: 表示删除key成功 0: 表示删除key失败
expire [key] [seconds]
给一个key设置过期时间 单位 秒
ttl [key]
查看该key 还有多少秒过期 -1: 表示永远不过期 -2: 表示已过期
dbsize
查看当前数据的key的数量
flushdb
清空当前数据库
flushall
清空所有库
- string
最大512M
set [key] [value]
设置key value
get [key]
获取这个key的 value
append [key] [value]
给指定额key 追加value
strlen [key]
获取value的值得长度
setnx [key] [value]
如果key’不存在设置key的值
incr [key]
对指定key 自增一 只对数字值有效 为空则值为1
他是原子性的 不会因为线程的调度打断操作
decr [key]
对指定key 自减一 只对数字值有效 为空则值为-1
他是原子性的 不会因为线程的调度打断操作
incrby/decrby [key] [步长]
与上相同 可以自定义步长
他是原子性的 不会因为线程的调度打断操作
mset [key1] [value1] key2] [value2] …
同时设置多个key value
mget[key1] [key2] …
同时获取多个value
msetnx [key1] [value1] key2] [value2] …
同时设置多个key value 当key 不存在是
getrange [key] [起始位置] [结束位置]
获取value的指定范围 类似于Java 的 substring
setrange [key] [起始位置] [value]
用value覆写key所储存的字符串值,
从 起始位置 开始。
setex [key] [过期时间] [value]
设置key value 时 同时设置过期时间
getset
设置新值 获取旧值
- list
它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
单键多值
lpush/rpush [key] [value]…
从左侧/右侧 插入一个或多个值
lpop/rpop key
从左侧/右侧吐出一个值 值在键在 值光键亡
rpoplpush [key1] [key2]
从key1列表的右侧吐出一个值 插入到key2的左侧
lrange [key] [start] [stop]
按照索引下标获得元素(从左到右)
0 是表头 -1 是表尾
lindex [key] [index]
按照索引下标获得元素(从左到右)
llen [key]
获取列表长度
lrem [key] [正数/零/负数] [值]
删除指定key list中的值
正数代表 从左往右删 几个值
负数代表 从右往左删 几个值
零 表示 删除全部的 这个值
ltrim [key] [起始索引] [结束索引]
截取指定索引区间的元素
linsert [key] before/after [值1] [值2]
在list某个已有值的前后再添加具体值
- set
他是以个无序的集合 不可重复的集合
他的底层就是一个value为null 的hash表
sadd [key] [value] [value] [value] …
添加元素
smembers [key]
查看set中所有元素
sismember [key] [value]
查看set中是否存在这个元素
scard [key]
获取集合里面的元素个数
srem [key] [value] …
删除集合中元素
spop [key]
随机出栈
出栈之后删除
srandmember [key]
随机出几个数
不删除
sdiff [key1] [key2]
差集
sinter [key1] [key2]
交集
sunion [key1] [key2]
并集
- hash
Redis中的hash就是一个键值对 类似于 Java 中的Map<String,String>
hset [key] [field] [value]
设置hash 值
hget [key] [field]
获取hash 的值
hmset [key] [field] [value] [field] [value] …
批量 设置hash 值
hmget
批量 获取hash 的值
hgetall
获取这个key 下的所有的 field value
hdel [key]
删除这个key
hdel [key] [field]
删除这个key 中的这个 field
hlen [key]
这个hash的长度
hexists [key] [field]
判读这个 field是否存在
hkeys [key]
获取这个key 下的所有的 field
hvals [key]
获取这个key 下的所有的 value
hincrby [key] [field] [步长]
field的value 增加 步长 可以为负数
hsetnx [key] [field] [value]
field不存在新增
- zset
Redis有序集合zset与普通集合set非常相似,是
一个没有重复元素的字符串集合。不同之处是有序集合
的每个成都关联了一评分(score) ,这个平分
(score)被用来按照从最低分到最高分的方式排序集
合中的成员。集合的成员是唯一的,但是评分可以是重
复了
因为元素是有序的,所以你也可以很快的根据评分
(score)或次序(position)来获取一个范围的元
素。访问有序集合的中间元素也是非常快的,因此你能够
使用有序集合作为一个没有重复成员的智能列表。
zadd [key] [score] [value] [score] [value] …
添加zset
key: 键
score: 分数
value: 值
相同元素 相同分数 不会改变
相同元素 不同分数 改变分数
不同元素 相同分数 可以添加
zrange [key] [开始下标] [结束下标]
查询key 所对应的值
0 是表头 -1 是表尾
zrangebyscore [key] [开始score] [结束score]
查询key 分数对应的范围
zrevrange [key] [开始下标] [结束下标]
根据下标倒叙
0 是表头 -1 是表尾
zrevrangebyscore [key] [开始分数] [结束分数]
根据分数倒叙
zcard [key]
zset 的长度
zincrby [key] [自增分数] [元素]
自增分数
zrem [key] [元素]
删除zset 中的元素
zcount [key] [开始分数] [结束分数]
该zset 下的开始分数和结束分数之间的 元素个数
zrank [key] [元素]
返回该元素 在zset中的排名 0开始
zrevrank [key] [元素]
返回该元素 在zset中的倒叙排名 0开始