Redis的基本命令
Redis键
命令 | 涵义 |
---|---|
keys * | 查看当前库所有key |
exists key | 判断某个key是否存在 |
type key | 查看你的key是什么类型 |
del key | 删除是定的key数据 |
unlink key | 根据value选择非阻塞删除 |
expire key 10 | 10秒钟:为给定的key设置过期时间 |
ttl key | 查看还有多少秒过期,-1表示永不过期,-2表示已过期 |
select | 切换库 |
dbsize | 查看当前库的key的数量 |
flushdb | 清空当前库 |
flushall | 清空所有库 |
Redis启动
在/usr/local/bin目录下运行
redis-server ~/desktop/redis.conf
Redis的五种数据类型
Redis字符串(String)
常用命令
value最大为512M
命令 | 涵义 |
---|---|
set key value | 添加键值对 |
get key | == 查询对应键值== |
append key value | 追加到原值的末尾 |
strlen key | 获取值得长度 |
setnx key value | 只有咋ikey不存在时 设置key的值 |
incr key | 将key中存储的数字值增1 (只能对数字值操作,如果为空,新增值为1) |
decr key | 将key中存储的数字值减1(只能对数字值操作,如果为空,新增值为-1) |
incrby key 10 | 加10 |
decrby key 10 | 减10 |
mset key1 value1 key2 value2… | 设置多个key-value对 |
mget key1 key2 key3… | 取多个value |
msetnx key1 value1 key2 value2… | 同时设置多个key-value对。当且仅当所有key都不存在 |
getrange key 开始位置 结束位置 | 获取范围的值(都是闭区间,索引从0开始) |
setrange key 开始位置 value | 用value覆盖key所存储的字符串 |
setex key 过期时间 value | 设置key-value的同时设置过期时间 |
getset key value | 通新值换旧值,并且去除旧值 |
Redis列表(List)
单键多值
底层是双向链表
常用命令
命令 | 涵义 |
---|---|
lpush key value1 value2 value3… | 从左边插入一个或多个值 |
rpush key value1 value2 value3… | 从右边插入一个或多个值 |
lpop key | 从左边突出一个值(吐出之后为空,则键消失) |
rpop key | 从右边突出一个值(吐出之后为空,则键消失) |
rpoplpush key1 key2 | 从key1列表中右边吐出一个值,插入到key2的左边 |
lrange key start stop | 按照索引获取元素(从左到右) |
lrange mylist 0 -1 | 去所有值 |
lindex key 0 | 从左到右,索引0开始,取一个元素 |
llen key | 获取列表长度 |
linsert key before value newvalue | 在value的后面插入newvalue插入值 |
lrem key n value | 从左边删除n个value(从左到右) |
lset key index value | 将列表key下标为index的值替换为value |
Redis集合(Set)
结构是hash结构
常用命令
命令 | 涵义 |
---|---|
sadd key value1 value2… | 将一个或多个vaule添加到集合key中,如果存在value则忽略 |
smembers key | 去除该集合的所有值 |
sismenber key value | 判断集合中是否存在value值,有则为1,无则为0 |
scard key | 返回该集合的元素个数 |
srem key value1 value2 | 删除集合中的某个元素 |
spop key | 随机从该集合中吐出一个值 |
srandmember key n | 随机从该集合中取出n个值。不会从集合中删除 |
smove source destination value | 把集合中的一个值移动到另一个集合 |
sinter key1 key2 | 返回两个集合的交集元素 |
sunion key1 key2 | 返回两个集合的并集元素 |
sdiff key1 key2 返回两个集合的差集元素(key1中的,不包含key2中的)
Redis哈希(Hash)
类似于java中的map<Sring , Object>,即value为对象。
当长度小的时候是,压缩列表
当长度大的时候是,哈希表
常用命令
命令 | 涵义 |
---|---|
hset key field value | 给key集合中的field键赋值value |
hget key1 field | 从key1集合field取出value |
hmset key1 field1 value1 field2 value2… | 批量设置hash的值 |
hexists key field | 查看哈希表key中,给定域field是否存在 |
hkeys key | 列出该hash集合的所有field |
hvals key | 列出该hash集合的所有value |
hincrby key field increment | 为哈希表key中的域field的值加上增量1 -1 |
hsetnx key field value | 将哈希表key中的域field的值设置为value 当且仅当域field不存在 |
Redis有序集合(Zset)
常用命令
底层相当于java中的map<String,Double>
命令 | 涵义 |
---|---|
zadd key score1 value1 score2 value2 … | 将一个或多个元素及其score值加入到有序集key中 |
zrange key star stop [WITHSCORES] | 放回有序集key中,下标在star stop之间的元素,带[WITHSCORES],可以让分数一起和值返回到结果集 |
zrangebyscore key min max [withscores] [limit offset count] | 返回有序集key中 所有score值介于min 和max之间的成员。有序集成员按score值递增次序排列 |
zrevrangebyscore key max min [withscores] [limit offset count] | 返回有序集key中 所有score值介于max 和min之间的成员。有序集成员按score值递减次序排列 |
zincrby key increment value | 为元素的score加上增量 |
zrem key value | 删除该集合下,指定值的元素 |
zcount key min max | 统计该集合,分数区间内的元素个数 |
zrank key value | 返回该值在集合中的排名,从0开始 |