redisAPI命令和数据结构详解
通用命令
- keys 所有key
- dbsize 显示数据库大小
- exists key 判断key是否存在
- del key [key …] 删除key
- expire key seconds 设置key的过期时间
- type key key的类型
keys
这个命令显示所有key
keys *
keys 还可以用来查看多个符合条件的key。比如下面这个查看ph
开头的key.
keys ph*
dbsize
这个命令显示数据库有多少个key。
执行这个会显示1.
set hello world
dbsize
exists
这个命令判断key是否存在
set hello world
exists hello //1
exists hell //0
del
这个命令删除key
set hello world
del hello //1
del hello //0
expire
设置1秒后过期
set hello world
expire hello 1
查看剩余的过期时间
ttl hello
去掉过期时间
persist hello
type
查看数据类型,因为redis支持多种数据类型。
set hello world
type hello //string
字符串类型
字符串类型常用的命令就是set
,get
,del
。
还有其他的:
- incr key key自增1
- decr key key自减1
- incrby key x key自增x
- decrby key x key自减x
- setnx key value key不存在才会设置。相当于新增
- set key value xx key存在才会设置。相当于更新,把key更新成value
- setex key 5 value 设置key 5秒后过期
- mset key value key value 设置多个key value
- mget key key key 获取多个key
- getset key value 设置value后返回旧value
- append key value 把value追加到原来的值的后面
- strlen key 显示字符串长度
- incrybyfloat key 3.5 支持自增小数
- getrange key start end 获取指定区间的值
- setrange key offset vlaue 从指定位置设置值
hash类型
- hget key field 获取hash key 对应的 field的value
- hset key field value 设置hash field value
- hdel key field 删除 hash key 对应的field
- hgetall key 获取key下的所有hash数据
- hvals key 获取key下的所有hash值,不包括field
- hkeys key 获取key下的所有hash field,不包括value
- hexists key field 判断 key 下的 field是否存在
- hlen key 判断hash有多少field
- hmset key field value … 设置多个field value
- hmget key field field 获取多个field
上面字符串的命令,其实hash都可以使用,比如:
- hsetnx
- hincryby
- hincrybyfloat
list 类型
添加
- rpush key value … 从列表右边插入值
- lpush key value … 从列表左边插入值
- linsert key before|after value newValue 在值的前或后面插入新值
删除
- lpop key 从列表左边弹出值
- rpop key 从列表右边弹出值
- lrem key count value 从列表删除count个值,count=0全删,count>0从左边删除count个,count < 0从右边删除count个
- ltrim key start end 只保留列表start到end的值
查询
- lrange key start end 获取start到end的值
- lindex key index 获取index下表的值
- llen key 获取列表的长度
更新
- lset key index newValue 更新这个下表的值
阻塞获取,空列表会阻塞,当有数据插入才会获取。
- blpop
- brpop
set 类型
- sadd key value 集合里面添加元素
- srem key value 集合里面删除元素
- scard key 获取集合长度
- sismember key value 判断value是否在key中
- srandmember key count 从集合随机挑选count个元素
- spop key count 从集合随机弹出count个元素,弹出后集合里就没有了
- smembers key 获取集合所有元素
- sdiff key key 获取多个集合不同的元素,差集
- sinter key key 获取相同的元素,交集
- sunion key key 获取全部元素,并集
zset 类型
有序集合一般用来做排行榜。是根据分数来排序的
- zadd key score value 添加分数和值。
- zcard key 获取有序集合的数量
- zrem key value 删除值
- zincrby key score value 给值增加分数或者减少分数score可以是负的
- zscore key value 获取值的分数
- zrange key start end 获取有序集合的数据,数据按分数从小到大排序
- zrevrange key start end 获取数据,这个获取的按分数从大到小排序
- zrangebyscore key start end 按照分数获取数据
- zcount key start end 按照分数获取数量
- zremrangebyrank key start end 按照排名删除数据