Redis 常用命令
Redis:
string
存储单个数据,一个存储空间对应一个数据
操作返回结果提示:1成功,0失败
字符串最大存储:512M
字符数值计算范围(Java中的long的最大值):- ~9223372036854775807
key 命名方式建议:
表名:主键名:主键值:字段名
set key value
说明:
设置一个键和值
get key
说明:
获取指定键的值
del key
说明:
删除指定键
mset key1 value1 key2 value2 ...
说明:
设置多个键和值
mget key1 key2 ...
说明:
获取指定多个键的值
strlen key
说明:
获取指定键的值的长度
append key value
说明:
往指定的键中的值之后追加数据。键为未存在则新建键值对,存在则往指定的键中追加
返回:追加后的值的长度
incr key
说明:
将指定键的值加1
注意:
该值必须为能转成数字的字符,例如:1,2,3这种字符。
decr key
说明:
将指定键的值减1
注意:
该值必须为能转成数字的字符,例如:1,2,3这种字符。
incrby key increment
说明:
将指定键的值加上指定的整数increment,increment为负数时效果为减
注意:
该值必须为能转成整数的字符,例如:-1,2,3这种字符。
decrby key increment
说明:
将指定键的值减去指定的整数increment,increment为负整数时效果为加
注意:
该值必须为能转成整数的字符,例如:1,2,-3这种字符。
incrbyfloat key increment
说明:
将指定键的值加上指定的浮点数increment,increment为负数时效果为加
注意:
该值必须为能转成数字的字符,例如:1.2,2.0,-0.3这种字符。
setex key sceonds value
说明:
将指定键值设置过期时间(单位:秒),时间到后值被清空,键仍然存在。
注意:在未过期时重新设置该键的值,则该值不存在过期时间。
setex key millisceonds value
说明:
将指定键值设置过期时间(单位:毫秒),时间到后值被清空,键仍然存在。
注意:在未过期时重新设置该键的值,则该值不存在过期时间。
set和mset对比:
指令执行过程:
1.服务器发送指令到redis需要的时间为T1
2.redis处理指令时间为 T2
3.redis处理完毕返回服务器的时间为T3
例如:
同时执行三条指令(数据量越多越明显):
set时间:(T1+T2+T3)*3
mset时间:T1+T2+T3
hash P14
一个存储空间保存多个键值对数据,底层使用hash存储结构
hash类型value中只能存字符串
每个hash能存2的32次方-1个键值对
hset key field value
说明:
1.将指定的键中添加字段和字段对应的值
2.将指定的键中修改字段和字段对应的值
hget key field
说明:
获取指定的键中字段对应的值
hgetall key
说明:
获取指定的键中所有的字段和字段值
注意:键中的字段多时,会影响效率。
hdel key field1 [field2 field3]
说明:
删除指定的一个或多个键中的字段和字段值
hmset key field1 value1 field2 value2 ...
说明:
设置或修改指定键的一个或多个字段和字段值
hmget key field1 field2...
说明:
获取指定键的一个或多个字段对应的值
hlen key
说明:
获取指定键中的字段数量
hexists key field
说明:
判断指定的键中是否存在指定的字段
hkeys key
说明:
获取指定的键中的所有字段名
hvals key
说明:
获取指定的键中的所有字段对应的值
hincrby key field increment
说明:
将指定键中的字段对应的字段值加上指定的整数increment,increment为负数时效果为加
注意:
该值必须为能转成数字的字符,例如:1,2,-3这种字符。
hincrbyfloat key field increment
说明:
将指定键中的字段对应的字段值加上指定的浮点数increment,increment为负数时效果为加
注意:
该值必须为能转成数字的字符,例如:1.2,2.0,-0.3这种字符。
hsetnx key field value
说明:
在指定键中设置指定字段和字段值
注意:
若操作的字段已经存在于此键中,则操作失败,否则成功
list
存储多个数据,存储空间顺序进行区分,一个存储空间存多个数据,底层采用双线链表存储结构实现。
list保存的数据都是字符串,容量为2的32次方-1。
具有索引概念,通常以队列或栈的方式操作。
lpush key value1 [value2,value3,..]
说明:
向指定的键中添加数据
注意:
此方式定义的数据从左边进入
rpush key value1 [value2,value3,..]
说明:
向指定的键中添加数据
注意:
此方式定义的数据从右边进入
lrange key start stop
说明:
在指定键中查找值
注意:
start为开始下标(0开始);stop结束下标,负数为倒数第几个
lindex key index
说明:
获取指定键中的下标值
注意:
index为负数时表示倒数
llen key
说明:
在指定键中的值长度
lpop key
说明:
在指定键中取出值
注意:
左边出
rpop key
说明:
在指定键中取出值
注意:
右边出
blpop key [key2 ...] timeout
说明:
在指定时间内取出键中的值
注意:
左边出,此方式具有阻塞效果,可从多个列表中取值
brpop key [key2 ...] timeout
说明:
在指定时间内取出键中的值
注意:
右边出,此方式具有阻塞效果,可从多个列表中取值
lrem key count value
说明:
移除指定数据,可从中间移除 count:为移除个数 value移除的值
set
存储大象数据,提高查询速度。
存储结构与hash相同,仅存键,不存值,因此,存的数据不能重复,重复则覆盖。
不允许重复元素
sadd key member [member2,member3...]
说明:
添加指定的键值
smembers key
说明:
取出键中的值
srem key member [member2,member3...]
说明:
移除键中的值
scard key
说明:
获取键中的值的总数
sismember key member
说明:
判断指定的键中是否存在指定值
srandmember key [count]
说明:
随机取出集合中指定数量的数据,元数据不变
spop key
说明:
随机取出集合中指定数量的数据,并将取出的数据移出集合
sinter key1 [key2...]
说明:
获取指定键中的交集
sunion key1 [key2...]
说明:
获取指定键中的并集,去除重复
sdiff key1 [key2...]
说明:
获取指定键中的差集
sinterstore destination key1 [key2 ... ]
说明:
获取指定键中的交集存储到指定的集合中,destination为新集合名称
sunionstore destination key1 [key2 ... ]
说明:
获取指定键中的并集存储到指定的集合中,destination为新集合名称
sdiffstore destination key1 [key2 ... ]
说明:
获取指定键中的差集存储到指定的集合中,destination为新集合名称
smove source destination member
说明:
移动指定集合中的元素到指定目标集合中,source为原目标集合,destination移动到的目标集合,member移动的元素
sorted_set
在Set的存储结构上添加可排序的字段
score对正数的范围是:-900719925474099~900719925474099
score保存的数据也可以是double值,但有可能出现精度丢失
底层基于set结构,数据不能重复,重复则覆盖,保留最后一次修改的数据
zadd key score1 member1 [score2 member2 ...]
说明:
向指定的键中添加数据。 score1排序的字段 member1值
zrange key start stop [withscores]
说明:
正向获取指定的键中数据.
zrevrange key start stop [withscores]
说明:
反向获取指定的键中数据.
zrem key member [member ...]
说明:
删除数据
zrangebyscore key min max [withscores] [limit]
说明:
按条件顺序获取数据,limit与mysql的用法一致
zrevrangebyscore key min max [withscores]
说明:
按条件倒序获取数据
zremrangebyrank key start stop
说明:
按索引删除数据
zremrangebyscore key min max
说明:
按条件删除数据
zrank key member
说明:
获取数据顺序对应的索引(排名),从小到大
zrevrank key member
说明:
获取数据倒序对应的索引(排名),从大到小
zscore key member
说明:
对score排序值的获取
zincrby key increment member
说明:
对score排序值的修改 increment正数为添加,负数为减少 member为字段
通用命令:
time
说明:
redis提供的时间命令
del key
说明:
删除指定的key
exists key
说明:
判断key是否存在
type key
说明:
获取key的类型
expire key seconds
说明:
设置key的过期时间,单位秒
pexoire key milliseconds
说明:
设置key的过期时间,单位毫秒
expireat key timestamp
说明:
设置key的过期时间,时间戳
pexpireat key milliseconds-timestamp
说明:
设置key的过期时间,毫秒时间戳
ttl key
说明:
获取key的有效期
pttl key
说明:
获取key的有效期
persist key
说明:
将key设置成永久性
keys parttern
说明:
查询key
parttern 查询的规则
* 任意数量任意符号
?匹配一个任意符号
[] 匹配一个指定的符号
rename key newkey
说明:
更改key名称,重名则覆盖原key
renamenx key newkey
说明:
更改key名称,重名则失败
sort
说明:
对所有key进行排序
help @generic
说明:
查看其他通用操作
redis数据库
redis提供16个数据库 编号0-15
select index
说明:
切换数据库, index编号0-15
quit
说明:
退出
ping
说明:
测试redis-server服务器是否连通
echo message
说明:
打印信息
move key db
说明:
将键移动到其他数据库,移动对象必须存在
dbsize
说明:
查看当前操作数据库中的键的数量
flushdb
说明:
清除当前操作数据库的所有数据
flushall
说明:
清除所有数据库的所有数据
评论