redis数据类型常用方法

一、String

set:添加String类型数据

get:获取String类型数据

del:删除数据

append:在原基础上追加数据,假如原来k1值是v1,执行append k1 ddd,那么值就变为v1ddd

strlen:获取数据的长度,例如strlen k1,将获取k1的数据长度

incr:值只能为数字,执行时会在原值上加1,例如set k1 10,执行Incr k1后值变为11

decr:值只能为数字,执行时会在原值上减1,例如set k1 10,执行decr k1后值变为9

incrby:值只能为数字,加固定的值,例如incrby k1 2,在原值的基础上加2

decrby:值只能为数字,减固定的值,例如incrby k1 2,在原值的基础上减2

getrange:获取从起始位置到结束位置的值,例如set k1 abcdefg,getrange k1 2 5,将获取cdef

setrange:Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始,例如SET key1 "Hello World"SETRANGE key1 6 "Redis"GET key1将得到"Hello Redis"

 setex:Setex 命令为指定的 key 设置值及其过期时间(时间单位秒)。如果 key 已经存在, SETEX 命令将会替换旧的值。例如setex k1 10 val1。

setnx:只有在键不存在的情况将值设定,若存在则不做操作。

mset:Mset 命令用于同时设置一个或多个 key-value 对。例如mset k1 v1 k2 v2

mget:Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。

msetnx:Msetnx 命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。

 getset:Getset 命令用于设置指定 key 的值,并返回 key 的旧值。

二、List

列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

lpush:Lpush 命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。

rpush:Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。

lrange:Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

lpop:Lpop 命令用于移除并返回列表的第一个元素

rpop:Rpop 命令用于移除列表的最后一个元素,返回值为移除的元素。

lindex:Lindex 命令用于通过索引获取列表中的元素。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。例如:lindex list1 0

llen:Llen 命令用于返回列表的长度。 如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。 如果 key 不是列表类型,返回一个错误。

lrem:Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。

COUNT 的值可以是以下几种:

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

ltrim:Ltrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

rpoplpush:Rpoplpush 命令用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

lset:Lset 通过索引来设置元素的值。当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。相当于修改值。

linsert:Linsert 命令用于在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。例如:rpush list1 hello world,linsert list1 before world there将得到 hello there world

三、Set

sadd:Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。命令基本语法如下:SADD KEY_NAME VALUE1..VALUEN

scard:Scard 命令返回集合中元素的数量。Scard 命令基本语法如下:SCARD KEY_NAME

smembers :Smembers 命令返回集合中的所有的成员。 不存在的集合 key 被视为空集合。Smembers 命令基本语法如下:SMEMBERS key

sismember:Sismember 命令判断成员元素是否是集合的成员。Sismember 命令基本语法如下:SISMEMBER KEY VALUE

srem:Srem 命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。当 key 不是集合类型,返回一个错误。Srem 命令基本语法如下:SREM KEY MEMBER1..MEMBERN

srandmember:Srandmember 命令用于返回集合中的一个随机元素。命令基本语法如下:SRANDMEMBER KEY [count]

Srandmember 命令接受可选的 count 参数:

  • 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
  • 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

spop:Spop 命令用于移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素。Spop 命令基本语法如下:SPOP key [count],count移除集合的个数,默念为1

smove:Smove 命令将指定成员 member 元素从 source 集合移动到 destination 集合。如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。

当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

当 source 或 destination 不是集合类型时,返回一个错误。

sdiff:Sdiff 命令返回第一个集合与其他集合之间的差异,也可以认为说第一个集合中独有的元素。不存在的集合 key 将视为空集。差集的结果来自前面的 FIRST_KEY ,而不是后面的 OTHER_KEY1,也不是整个 FIRST_KEY OTHER_KEY1..OTHER_KEYN 的差集。

sinter:Sinter 命令返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。

sunion:Sunion 命令返回给定集合的并集。不存在的集合 key 被视为空集。

四、Hash

KV模式不变,但V是一个键值对

hset:Hset 命令用于为哈希表中的字段赋值 。Hset 命令基本语法如下:HSET KEY_NAME FIELD VALUE

hget:Hget 命令用于返回哈希表中指定字段的值。Hget 命令基本语法如下:HGET KEY_NAME FIELD_NAME

hmset:Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。Hmset 命令基本语法如下:HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN

hmget:Hmget 命令用于返回哈希表中,一个或多个给定字段的值。Hmget 命令基本语法如下:HMGET KEY_NAME FIELD1...FIELDN

hgetall:命令用于返回哈希表中,所有的字段和值。Hgetall 命令基本语法如下:HGETALL KEY_NAME ,获取到的数据奇数为键,偶数为值

hdel:Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。Hdel 命令基本语法如下:HDEL KEY_NAME FIELD1.. FIELDN

hlen:Hlen 命令用于获取哈希表中字段的数量。Hlen 命令基本语法如下:HLEN KEY_NAME

Hexists 命令用于查看哈希表的指定字段是否存在。Hexists 命令基本语法如下:HEXISTS KEY_NAME FIELD_NAME

 hkeys:Hkeys 命令用于获取哈希表中的所有域(field)。Hkeys 命令基本语法如下:HKEYS key

hincrby:Hincrby 命令用于为哈希表中的字段值加上指定增量值。Hincrby 命令基本语法如下:HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER

hincrbyfloat:Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。Hincrbyfloat 命令基本语法如下:HINCRBYFLOAT key field increment

hsetnx:Hsetnx 命令用于为哈希表中不存在的的字段赋值 。Hsetnx 命令基本语法如下:HSETNX KEY_NAME FIELD VALUE

五、ZSet

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

在set基础上,加一个score值。
之前set是k1 v1 v2 v3,
现在zset是k1 score1 v1 score2 v2

zadd:Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中。Zadd 命令基本语法如下:ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN

zrange:Zrange 返回有序集中,指定区间内的成员。Zrange 命令基本语法如下:ZRANGE key start stop [WITHSCORES],按下标取数据

zrangebyscore:Zrangebyscore 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。Zrangebyscore 命令基本语法如下:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

zrem:Zrem 命令用于移除有序集中的一个或多个成员,不存在的成员将被忽略。Zrem 命令基本语法如下:ZREM key member [member ...],member是保存的值,不是分值

zcard:Zcard 命令用于计算集合中元素的数量。Zcard 命令基本语法如下:ZCARD KEY_NAME

zcount:Zcount 命令用于计算有序集合中指定分数区间的成员数量。Zcount 命令基本语法如下:ZCOUNT key min max,是计算数量不是获取值

zrank:Zrank 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。Zrank 命令基本语法如下:ZRANK key member,将排名结果返回例如该成员在所有排序中第2会返回2

zscore:Zscore 命令返回有序集中,成员的分数值。 如果成员元素不是有序集 key 的成员,或 key 不存在,返回 nil 。Zscore 命令基本语法如下:ZSCORE key member

zrevrank:Zrevrank 命令返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。

排名以 0 为底,也就是说, 分数值最大的成员排名为 0 。

zrevrange:Zrevrange 命令返回有序集中,指定区间内的成员。

其中成员的位置按分数值递减(从大到小)来排列。

具有相同分数值的成员按字典序的逆序(reverse lexicographical order)排列。

Zrevrange 命令基本语法如下:ZREVRANGE key start stop [WITHSCORES]

zrevrangebyscore:Zrevrange 命令返回有序集中,指定区间内的成员。其中成员的位置按分数值递减(从大到小)来排列。具有相同分数值的成员按字典序的逆序(reverse lexicographical order)排列。Zrevrange 命令基本语法如下:ZREVRANGE key start stop [WITHSCORES]

原文地址:https://www.cnblogs.com/xiaofengfree/p/14406106.html