一、Redis的相关命令详解
1、Redis常用命令
Reids命令 |
常用命令 |
keys * |
获取所有的key |
select 0 |
选择第一个库 |
move myString 1 |
将当前的数据库key移动到某个数据库,目标库有,则不能移动 |
flushdb |
清除指定库 |
randomkey |
从当前数据库中随机返回 |
type key |
类型 |
del key1 |
删除key |
exists key |
判断是否存在key |
expire key |
10 过期 |
pexpire key |
1000 毫秒 |
persist key |
删除过期时间 |
ttl key |
查看还有多少秒过期,-1表示永不过期,-2表示已过期 |
2、String类型相关命令
Reids命令 |
String类型相关命令 |
set name |
设置值 |
get name |
取值 |
getrange name 0 -1 |
字符串分段 0 -1是全部 0 -2 ==n-1 |
getset name |
new_cxx 设置值,返回旧值 |
mset key1 key2 |
批量设置 |
mget key1 key2 |
批量获取 |
setnx key value |
不存在就插入(not exists) |
setrange key index value |
从index开始替换value |
incr age |
递增 |
incrby age 10 |
递增 |
decr age |
递减 |
decrby age |
10 递减 |
incrbyfloat |
增减浮点数 |
append |
追加 |
strlen |
长度 |
object encoding key |
得到key 的类型 string里面有三种编码 |
int |
用于能够副作用64位有符号整数表示的字符串 |
embstr |
用于长度小于或等于44字节 Redis3.x中是39字节,这种类型的编码在内存使用时性能更好 |
raw |
用于长度大于44字节的 |
3、list类型相关命令
lpush key #插入.
lpush mylist a b c #左插入.
rpush mylist x y z #右插入.
lrange mylist 0 -1 #取出数据集合 0 -1是取出所有 0 1取第第一个和第二个.
lpop mylist #弹出集合最后一个元素 弹出之后就没有了.
rpop mylist #弹出第一个元素 弹出之后就没有了.
llen mylist #长度.
lrem mylist count value #删除 .
#count 的值可以是以下几种:
#count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
#count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
#count = 0 : 移除表中所有与 VALUE 相等的值。
lindex mylist 2 #指定索引的值.
lset mylist 2 n #索引设值.
ltrim mylist 0 4 #对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
linsert mylist before a #下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
#命令用于在列表的元素前插入元素. 当指定元素不存在于列表中时,不执行任何操作.
#(当列表不存在时,被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误)
linsert mylist after a #你也可以使用负数下标,以 -1 表示列表的最后一个元素,
#-2 表示列表的倒数第二个元素,以此类推命令用于在列表的元素后插入元素.
#当指定元素不存在于列表中时,不执行任何操作.(当列表不存在时,被视为空列表,
#不执行任何操作。 如果 key 不是列表类型,返回一个错误) |
rpoplpush list list2 #转移列表的数据,命令用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回.
4、hash类型相关命令
hset key value-key value-value
hset myhash name cxx
#|--命令用于为哈希表中的字段赋值 。
#|--如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
#|--如果字段已经存在于哈希表中,旧值将被覆盖。
hget myhash name
hmset myhash name cxx age 25 note "i am notes"
hmget myhash name age note
hgetall myhash #获取所有的
hexists myhash name #是否存在
hsetnx myhash score 100 #设置不存在的 如果存在,不做处理
hincrby myhash id 1 #递增
hdel myhash name #删除
hkeys myhash #只取key
hvals myhash #只取value
hlen myhash #长度
5、hash类型相关命令
Reids命令 |
String类型相关命令 |
sadd myset redis |
添加 |
smembers myset |
数据集合 |
srem myset set1 |
删除 |
sismember myset set1 |
判断元素是否在集合中 |
scard key_name |
个数 |
sdiff key1 key2 …… | sinter | sunion |
操作:集合间运算:差集 | 交集 | 并集 |
srandmember key count |
随机获取集合中的元素 |
spop |
从集合中弹出一个元素 |
6、hash类型相关命令
Reids命令 |
String类型相关命令 |
zadd zset 1 |
one |
zadd zset 2 |
two |
zadd zset 3 |
three |
zincrby zset 1 one |
增长分数 |
zscore zset two |
获取分数 |
zrange zset 0 -1 withscores |
范围值 |
zrangebyscore zset 10 25 withscores |
指定范围的值 |
zrangebyscore zset 10 25 withscores limit 1 2 |
分页 |
Zrevrangebyscore zset 10 25 withscores |
指定范围的值 |
zcard zset |
元素数量 |
Zcount zset |
获得指定分数范围内的元素个数 |
Zrem zset one two |
删除一个或多个元素 |
Zremrangebyrank zset 0 1 |
按照排名范围删除元素 |
Zremrangebyscore zset 0 1 |
按照分数范围删除元素 |
Zrank zset 0 -1 |
分数最小的元素排名为0 |
Zrevrank zset 0 -1 |
分数最大的元素排名为0 |
Zinterstore |
zunionstore rank:last_week 7 rank:20150323 rank:20150324 rank:20150325 weights 1 1 1 1 1 1 1 |