热门系列:

  • 程序人生,精彩抢先看

  • 【分布式系列】分布式锁原理篇-Redisson、Zookeeper、Database

  • 【Java面试系列】Redis面试题


1、前言

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

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


2、正文

2.1 redis的五种数据类型

Redis五种数据类型主要为:

2.2 常用命令

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

set testKey 123aaa

返回:OK

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

get testKey

返回:"123aaa"

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

incr testNum

返回:(integer) 1

String类型 decr  decr key值:
将对应value值递减1
String类型 del del 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字爆肝整理,路过不容错过相关推荐

  1. cmd锁定计算机病毒,反病毒常用CMD命令大全

    反病毒常用CMD命令大全 I.文件类: 1.attrib 显示或更改文件属性 命令格式: ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive ...

  2. 常用 Windows10命令大全

    Windows10命令大全 相信很多使用win10喜欢折腾电脑搞机的小伙伴都想要一份完整的Windows10命令大全,大家可能会突然想要打 开某个cmd命令但是却忘记了具体的命令,包括小编我自己也有过 ...

  3. CentOS常用基础命令大全

    这篇文章主要介绍了CentOS常用基础命令大全,学习centos的朋友需要掌握的知识,需要的朋友可以参考下 1.关机 (系统的关机.重启以及登出 ) 的命令 shutdown -h now 关闭系统( ...

  4. 进入注册表一些常用的命令大全汇总

    进入注册表一些常用的命令大全汇总 进入注册表有很多的命令.如果很熟悉了.使用起来也很方便的 我们可以点击桌面左下角的开始>>运行,在运行窗口中输入regedit命令即可打开注册表,如图所示 ...

  5. 3ds MAX常用快捷键命令大全,快捷键自定义方法,游戏建模小白必备

    3dmax常用快捷键命令有哪些?在使用3dmax进行作图渲染的过程之中,熟练掌握一些命令的快捷键位置,能够大大提升我们的工作效率.同时,根据自己的使用习惯,自定义常用快捷键的命令,也可以加快我们作图的 ...

  6. Java工程师常用Linux命令大全

    Java工程师常用Linux命令大全 查看目录下文件 ll 显示当前目录下文件详细信息. ll -a 显示当前目录下所有文件(包括隐藏文件) 查看当前目录 pwd 查看当前路径 查看进程 ps -a ...

  7. 15 Redis缓存及常用数据类型

    1 简介 1.1 背景 我们现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导 ...

  8. redis学习之常用数据类型

    redis支持5种数据类型:string(字符串),list(列表),set(集合),sorted set(有序集合),hash(哈希).下面是学习过程中的测试样例: 1:string(字符串),st ...

  9. Redis系列-Redis笔记(一)

    Redis基础 Redis安装 # 下载 cd /tmp wget http://download.redis.io/releases/redis-3.2.11.tar.gz # 解压 tar -zx ...

  10. redis系列-redis基础知识总结

    一.Redis 设计架构 1.1.Redis整体架构和redis学习思路 上图是我理解的redis单机工作的一个概图. 我尝试从以下基本内容来学习redis: 单机redis 就单机版而言,我们可以从 ...

最新文章

  1. [转] 利用jemalloc分析内存泄漏
  2. 0.5s c语言延时子程序集,用C语言实现精确的延时.doc
  3. sql server 2008学习4 设计索引的建议
  4. Dart语言精简入门介绍
  5. 为什么突然变乱码_9102年了,还不知道Android为什么卡?
  6. 一个API方式存取日志文件的模块[VB]
  7. 使用Configuration Manager部署及管理软件更新(1)
  8. JDK版本更换后编译android系统出错
  9. 【语音处理】基于matlab音频信号FIR+IIR(高通+低通+带通)滤波器频谱分析【含Matlab源码 1732期】
  10. Jquery 取色器
  11. A4纸网页打印中对应像素的设定和换算
  12. PTCMS可听书可下载的小说站源码+带采集和教程
  13. FDD下行信道估计的一些知识点
  14. python读取csv最后一行_用Python读取CSV文件行的最后一个非空单元格
  15. minecraft崩溃java,je1.7.10,进入世界就崩溃,解决一下
  16. 2021最新 深圳互联网公司排名
  17. matlab details
  18. javascript 递归乘阶
  19. Android音频处理知识(一)MediaRecorder录制音频
  20. 深入理解计算机系统 练习题3.8 理解计算机二元操作

热门文章

  1. 基于protues与keli下贪吃蛇的实现
  2. 华为交换机VTY用户界面属性配置教程
  3. 【Linux】ubuntu锐捷客户端连接四川大学校园网
  4. java选择题库_java选择题库
  5. Sigar介绍与使用
  6. c语言程序设计何钦铭颜晖pdf,C语言程序设计(第3版)何钦铭颜晖第12章文件.pdf
  7. 双击java安装包没反应_wps安装包双击没反应
  8. Ubuntu20.04安装WPS
  9. 2021年5月软考网络工程师上午真题(带答案解析)上
  10. 自我管理 写好工作周报