redis~键-数据操作命令

Redis 键命令用于管理 redis 的键。

删除 : del key
序列化key : dump key
存在 : exists key
设置过期时间(秒) : expire key seconds
设置过期时间(毫秒) : pexpire key milliseconds
设置过期时间(时间戳) : expireat KEY TIME_IN_UNIX_TIMESTAMP
设置过期时间(毫秒时间戳) : pexpireat KEY TIME_IN_UNIX_TIMESTAMP
查询给定模式的key : keys pattern
移动key到指定库中 : move key db
移除key过期时间 : persist key
key剩余过期时间(毫秒) : pttl key
key剩余过期时间(秒) : ttl key
当前数据库中随机返回一个key : randomkey
修改key : rename key newkey
当newkey不存在时修改key为newkey : renamenx key newkey
key对应value的数据的数据类型 : type key

Redis支持五种数据类型:string,hash,list,set,zset

String

String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
String类型是Redis最基本的数据类型,一个键最大能存储512MB。
注意:一个键最大能存储512MB。

命令

设置key的值 : set key value
获取值 : get key
获取字符串数据中的子字符串 : (包括 start 和 end 在内):GETRANGE KEY_NAME start end

set key 123456getrange key 1 2
返回:"23"

设置新值返回旧值 : getset key
设置一对或者多对key-value : mset key1 value1 key2 value2…
设置一对或者多对key-value(key不存在时) : msetnx key1 value1 key2 value2…
获取一个或者多个key的值 : mget key1 key2 …
设置key,value 和过期时间(秒) : setex key seconds value
设置key,value 和过期时间(毫秒) : psetex key seconds value
key不存在时设置key的值 : setnx key value
key对应value的长度 : strlen key
key对应value的值加1 : incr key
key对应value的值减1 : decr key
key对应value的值加指定值 : incrby key increment
key对应value的值减指定值 : decrby key increment
key对应value的值加指定值(浮点数) : incrbyfloat key increment
value后追加字符串 : append key value
指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始 : SETRANGE KEY_NAME OFFSET VALUE

SET key1 "Hello World" SETRANGE key1 6 "Redis"
GET key1"Hello Redis"

Hash(Map集合)

一个string类型的field和value的映射表
每个 hash 可以存储 2的32次方减一个体键值对(40多亿)

命令

哈希表中的字段赋值 : hset hkey filedkey value filedkey value
字段不存在时添加 : hsetnx hkey fieldkey1 value
哈希表中key对应的所有的value : hvals hkey
哈希表中的所有的key : hkeys hkey
获取hash表的所有key-value : hgetall hkey
获取hash表中字段的数量 : hlen hkey
删除一个或者多个 : hdel hkey fidlekey fidlekey1
查看hash表中的key是否存在 : hexists hkey fieldkey
获取hash表中的key的值 : hget hkey fieldkey
指定key加1 : hincrby hkey field increment
指定key加浮点数 : hincrbyfloat hkey field increment
获取所有给定字段的值 : hmget hkey fieldkey
迭代哈希表中的键值对 : HSCAN key cursor [MATCH pattern] [COUNT count]

List(列表)

每个列表可以存储 2的32次方减一个数据(40多亿)

命令

插入一个/多个到列表头中 :lpush key value1 value2
列表长度 : llen key
在列表指定元素前/后插入数据 : linsert key before|after pivot value
为已经存在的列添加值(头部) : rpushx key value
列表中添加一个/多个值 : rpush key value1 value2
通过key+索引获取列中的数据 : lindex key index
通过key+索引范围获取列表中的数据 : lrange key start end
通过key+索引修改列表中的值 : lset key index value
根据count的值移除列表元素 : lrem key count value

COUNT 的值可以是以下几种:
	count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
	count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
	count = 0 : 移除表中所有与 VALUE 相等的值。

移除并获取第一个数据 : lpop key
移除列表最后一个数据 : rpop key
移除处在指定区域的数据 : ltrim key start stop

Set(无序集合)

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
每个集合可以存储 2的32次方减一个数据(40多亿)

命令

集合中添加成员 : sadd key value1 value2
集合成员数 : scard key
集合中所有成员 : smembers key
迭代集合中的元素** : SSCAN key cursor [MATCH pattern] [COUNT count]

cursor - 游标
pattern - 匹配的模式
count - 指定从数据集里返回多少元素,默认值为 10

差集 : sdiff key1 key2
差集存储在指定的集合中 : sdiffstore destination_key key1 key2
交集 : sinter key1 key2
交集存储在指定的集合中 : sinterstore destination_key key1 key2
并集 : sunion key1 key2
并集存储在指定的集合中 : sunionstore destination_key key1 key2
数据是否在集合中 :sismember key member
集合中指定数据移动得到另外一个集合 : smove source_key destination member
移除一个随机元素 : spop key
返回集合中一个或者多个随机数 : srandmember key [count]
移除集合中一个或者多个成员 : srem key member [member2]

zset(sorted set:有序集合)

zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 2的32次方减一(4294967295, 每个集合可存储40多亿个成员)。

命令

集合中添加成员 : zadd key [NX|XX] [CH] [INCR] score member [score member]

XX: 仅仅更新存在的成员,不添加新成员。
NX: 不更新存在的成员。只添加新成员。
CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 _changed_ 的意思)。更改的元素是
新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。
INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。```

获取成员数 : zcard key
迭代有序集合中的元素 : ZSCAN key cursor
有序集合成员的分数值 : zscore key member
指定score区间内的成员数 : zcount key min max
指定score区间内的成员数 : zcount key min max
指定区域的成员数 : ZLEXCOUNT KEY MIN MAX

ZADD myzset 0 a 0 b 0 c 0 d 0 e
ZADD myzset 0 f 0 g 
ZLEXCOUNT myzset - +
(integer) 7 
ZLEXCOUNT myzset [b [f
(integer) 5

有序集合中对指定成员的分数添加增量 : zincrby key increment member
并集并指定存储 : ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]

ZADD zset1 1 "one" 2 "two" 
ZADD zset2 1 "one" 2 "two" "three" 
ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3 
(integer) 3 
ZRANGE out 0 -1 WITHSCORES 
1) "one" 
2) "5" 
3) "three" 
4) "9" 
5) "two" 
6) "10"

指定集合的交集并指定存储 : ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
有序集中,指定区间内的成员 : ZRANGE key start stop [WITHSCORES]
字典区间返回有序集合的成员 : ZRANGEBYLEX key min max [LIMIT offset count]
有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列 : ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
指定成员的排名 : ZRANK key member
移除有序集中的一个或多个成员,不存在的成员将被忽略 : ZREM key member [member …]
移除有序集合中给定的字典区间的所有成员 : ZREMRANGEBYLEX key min max
移除有序集中,指定排名(rank)区间内的所有成员 : ZREMRANGEBYRANK key start stop
移除有序集中,指定分数(score)区间内的所有成员 : ZREMRANGEBYSCORE key min max
有序集中,指定区间内的成员 : ZREVRANGE key start stop [WITHSCORES]
返回有序集中指定分数区间内的所有的成员。有序集成员按分数值递减(从大到小)的次序排列 : ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序 : ZREVRANK key member

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章