Redis系列Redis常用数据类型命令大全,6K字爆肝整理,路过不容错过

Posted 善良勤劳勇敢而又聪明的老杨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis系列Redis常用数据类型命令大全,6K字爆肝整理,路过不容错过相关的知识,希望对你有一定的参考价值。

热门系列:


1、前言

        最近,经常操作Redis,但有些命令记的又有些模糊。想用的时候,还得百度或者翻笔记。。这一篇,我将给整理一份最全的redis常用命令~~~~

        高智商已经在一键三连先收藏了,新手还在下滑~~~~


2、正文

2.1 redis的五种数据类型

Redis五种数据类型主要为:\\mathrm{​{\\color{DarkRed} String}}\\mathrm{​{\\color{DarkRed} Hash}}\\mathrm{​{\\color{DarkRed} List}}\\mathrm{​{\\color{DarkRed} Set}}\\mathrm{​{\\color{DarkRed} SortedSet}}

2.2 常用命令

数据类型命令说明示例
String类型setset key值 value值:
设置key-value

set testKey 123aaa

返回:OK

String类型get get get key:
获取key对应的值

get testKey

返回:"123aaa"

String类型incrincr key值:
将对应value值递增1

 incr testNum

返回:(integer) 1

String类型decr decr key值:
将对应value值递减1
String类型deldel key值:
删除指定key值

 del testNum
返回:(integer) 1

String类型mset

mset key1 value1 key2 value2 ... :

批量设置键值对

mset keyStr1 213 keyStr2 aaa keyStr3 11eee
返回:OK

String类型mget

mget key1 key2 key3...:

批量获取指定key对应的value

mget keyStr1 keyStr2 keyStr3

返回:1) "213"
           2) "aaa"
           3) "11eee"

String类型setnx

setnx key值 value值:

设置key-value,但是当设置的key不存在时,才能设置成功;否则设置无效!

127.0.0.1:6379> setnx nxKey nxValue
返回:(integer) 1
127.0.0.1:6379> setnx nxKey 123
返回:(integer) 0
127.0.0.1:6379> get nxKey
返回:"nxValue"

hash类型hset hset key fields values:
向hash中key值添加内容fileds-value值

127.0.0.1:6379> hset mapKey field_name value_jack
返回:(integer) 1
127.0.0.1:6379> hset mapKey field_age value_25
返回:(integer) 1
127.0.0.1:6379> hset mapKey sex man
返回:(integer) 1

hash类型hget

HGET key field:

返回哈希表 key 中给定域 field 的值。

hexists mapKey field_age
返回:(integer) 1

hash类型hkeys hkeys key值:
查看key值下面的所有field值

hkeys mapKey
1) "field_name"
2) "field_age"
3) "sex"

hash类型hvals hvals key值:
查看key值下面的所有value值

hvals mapKey
1) "value_jack"
2) "value_25"
3) "man"

hash类型hgetall hgetall key值:
查看key值下面的所有field-value键值对

 hgetall mapKey
1) "field_name"
2) "value_jack"
3) "field_age"
4) "value_25"
5) "sex"
6) "man"

hash类型hdel hdel key值 field值:
删除指定key值下面的field值

hdel mapKey sex
返回:(integer) 1

hash类型hexists

HEXISTS key field:

查看哈希表 key 中,给定域 field 是否存在。

 hexists mapKey field_name
返回:(integer) 1

 hexists mapKey sex
返回:(integer) 0

hash类型hmset

HMSET key field value [field value ...]:

同时将多个 field-value (域-值)对设置到哈希表 key 中。

此命令会覆盖哈希表中已存在的域。

如果 key 不存在,一个空哈希表被创建并执行 hmset操作。

 hmset mapKey habit sing company alibaba
返回:OK

hash类型hmget

HMGET key field [field ...]:

返回哈希表 key 中,一个或多个给定域的值。

如果给定的域不存在于哈希表,那么返回一个 nil 值。

hmget mapKey habit company girlfriend
1) "sing"
2) "alibaba"
3) (nil)

List类型lpush 

LPUSH key value [value ...]:

将一个或多个值 value 插入到列表 key 的表头

如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头

lpush listKey 123 abc helloworld
返回:(integer) 3

List类型rpush

RPUSH key value [value ...]:

将一个或多个值 value 插入到列表 key 的表尾(最右边)。

如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾

rpush listKey1 111 222 333
返回:(integer) 3

List类型lrange 

LRANGE key start stop:

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

lrange listKey1 0 0
1) "111"

lrange listKey1 0 2
1) "111"
2) "222"
3) "333"

List类型lindex

LINDEX key index:

返回列表 key 中,下标为 index 的元素。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。

lindex listKey1 1
返回:"222"

List类型lset

LSET key index value:

将列表 key 下标为 index 的元素的值设置为 value 。

当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。

lset listKey1 1 444
返回:OK

List类型lpop

LPOP key:

移除并返回列表 key 的头元素。

lpop listKey1
返回:"111"

List类型rpop

RPOP key:

移除并返回列表 key 的尾元素。

 rpop listKey1
返回:"333"

List类型lrem

LREM key count value:

根据参数 count 的值,移除列表中与参数 value 相等的元素。

count 的值可以是以下几种:

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

lrem newList 2 777
返回:(integer) 1

Set类型sadd

SADD key member [member ...]:

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

假如 key 不存在,则创建一个只包含 member 元素作成员的集合。

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

 sadd setKey 123 345 456 123
返回:(integer) 3

Set类型scard

SCARD key:

返回集合 key 的基数(集合中元素的数量)。

scard setKey
返回:(integer) 3

Set类型smembers

SMEMBERS key

返回集合 key 中的所有成员。

不存在的 key 被视为空集合。

 smembers setKey
1) "123"
2) "345"
3) "456"

Set类型sdiff

SDIFF key [key ...]:

返回一个集合的全部成员,该集合是所有给定集合之间的差集。

不存在的 key 被视为空集。

sdiff setKey newSet
1) "345"
2) "456"

Set类型sdiffstore

SDIFFSTORE destination key [key ...]:

这个命令的作用和 SDIFF 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。

如果 destination 集合已经存在,则将其覆盖。

destination 可以是 key 本身。

Set类型sinter

SINTER key [key ...]:

返回一个集合的全部成员,该集合是所有给定集合的交集。

不存在的 key 被视为空集。

sinter setKey tempSet
返回:1) "123"

Set类型sunion

SUNION key [key ...]:

返回一个集合的全部成员,该集合是所有给定集合的并集。

不存在的 key 被视为空集。

sunion setKey tempSet
1) "haha"
2) "345"
3) "123"
4) "456"
5) "abc"

Set类型srandmember

SRANDMEMBER key [count]:

如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。

从 Redis 2.6 版本开始, SRANDMEMBER命令接受可选的 count 参数:

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

srandmember tempSet
返回:"abc"

srandmember tempSet
返回:"123"

Set类型srem

SREM key member [member ...]:

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

当 key 不是集合类型,返回一个错误。

srem tempSet 123 abc
返回:(integer) 2

Set类型smove

SMOVE source destination member:

将 member 元素从 source 集合移动到 destination 集合。

SMOVE 是原子性操作

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

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

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

smove newSet tempSet 123
返回:(integer) 1

SortedSet类型zadd

ZADD key score member [[score member] [score member] ...]:

将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。

score 值可以是整数值或双精度浮点数。

如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。

当 key 存在但不是有序集类型时,返回一个错误。

 zadd ssetKey 10 xiaoming
返回:(integer) 1

SortedSet类型zcard

ZCARD key:

返回有序集 key 的基数。

 zcard ssetKey
返回:(integer) 2

SortedSet类型zrange

ZRANGE key start stop [WITHSCORES]:

返回有序集 key 中,指定区间内的成员。

其中成员的位置按 score 值递增(从小到大)来排序。

具有相同 score 值的成员按字典序(lexicographical order)来排列。

如果你需要成员按 score 值递减(从大到小)来排列,请使用 ZREVRANGE命令。

zrange ssetKey 0 -1
1) "xiaoming"
2) "123"
3) "erha"

SortedSet类型zrevrange

ZREVRANGE key start stop [WITHSCORES]:

返回有序集 key 中,指定区间内的成员。

其中成员的位置按 score 值递减(从大到小)来排列。
具有相同 score 值的成员按字典序的逆序(reverse lexicographical order)排列。
除了成员按 score 值递减的次序排列这一点外, ZREVRANGE 命令的其他方面和 ZRANGE 命令一样。

SortedSet类型zrank

ZRANK key member:

返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。

排名以 0 为底,也就是说, score 值最小的成员排名为 0 。

使用 ZREVRANK 命令可以获得成员按 score 值递减(从大到小)排列的排名。

zrank ssetKey xiaoming
返回:(integer) 0

zrevrank ssetKey xiaoming
返回:(integer) 2

SortedSet类型zrem

ZREM key member [member ...]:

移除有序集 key 中的一个或多个成员,不存在的成员将被忽略。

当 key 存在但不是有序集类型时,返回一个错误。

zrem ssetKey 123
返回:(integer) 1

 


3、总结

      千里之行,始于足下。。赶紧关注、收藏,动手操作起来吧!!!

      (PS:redis 命令对于大小写不敏感。所以,大小写都一样的!!)

      感兴趣的朋友,欢迎收藏;有不足的地方,可以留言讨论,留言必回!!!

以上是关于Redis系列Redis常用数据类型命令大全,6K字爆肝整理,路过不容错过的主要内容,如果未能解决你的问题,请参考以下文章

Redis的常用命令和8大数据类型常用操作大全

Redis的常用命令和8大数据类型常用操作大全

Redis -- 数据库常用命令大全

redis支持哪些数据类型?redis命令大全

Redis快速起步及Redis常用命令大全

分布式缓存技术redis学习系列——详细讲解redis数据结构(内存模型)以及常用命令