Redis——02

前面了解了 Redis 以及在 Linux 的安装,下面了解一些 Redis 常用的命令。

Redis 常用命令:

Redis 是 Key-Value 形式,Key 为字符串类型,而 Value 的取值类型如下:

  • String 字符串
  • Hash 哈希表
  • List 列表
  • Set 集合
  • Sorted Set 有序 Set(ZSet)

Redis 命令相关手册

预先设置一些值:

set smg1 "smg1"
set smg2 "smg2"

1. Key 操作

1.1 exists

作用:判断 Key 是否存在

语法:exists key_name [key]

return:存在则返回有查询所到的个数,不存在则返回 0。

1.2expire

作用:用于设置 key 的过期时间。key 过期后将不再可用。

语法:expire key_name time_seconds 单位是秒

return:成功返回1,失败返回0

ttl key_name 查看指定 key 的剩余生存时间,单位是秒。

redis 2.8+:key 不存在返回 -2,key 存在但是没有设置剩余时间时,返回 -1。

1.3 del

作用:删除指定的 key,可以是多个 key。

语法:del key_name [key]

return:返回删除成功的个数

2. 字符串值

2.1 set

作用:设置指定的 key 的值

语法:set key value

value 中如果没有空格可以不用双引号,如果有空格则需要双引号。

return:成功 OK。

如果对一个 key 进行多次的 set,则会进行覆盖。

2.2 get

作用:根据指定的 key 查询值。

语法:get key

return:查询到的值,如果没有则返回 (nil),表示没有查到。

2.3 setnx

作用:新增一个 key,只有在 key 不存在的时候做新增,如果 key 存在,则新增失败,不会对其进行覆盖。

语法:setnx key value

return:成功返回 1,失败返回 0。

2.4 setex

作用:新增一个 key,并且设置有效时长单位是秒,同时是可以覆盖已存在的 key 所对应的 value,同时也会覆盖有效时长。

语法:setex key seconds value

return:成功 OK。

2.5 mset

作用:批量设置 key,如果已存在则覆盖。没有则新增

语法:mset key1 value1 ...keyN valueN

return:OK

2.6 mget

作用:批量查看 key

语法:mget key1 ...keyN

return:按照请求的 key 顺序返回

3. Hash

3.1 hset

作用:用于为哈希表中的字段赋值。

语法:hset key field value

return:成功 OK,如果哈希表中域字段(field)已经存在了 value 则会进行覆盖,返回0。

3.2 hget

作用:用于返回哈希表中指定字段的值。

语法:hget key field

return:返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。

3.3 hmset

作用:用于同时将多个 field-value (字段-值)对设置到哈希表中。此命令会覆盖哈希表中已存在的字段。如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。

语法:hmset key field1 value1 ...fieldN valueN

return:如果命令执行成功,返回 OK 。

3.4 hmget

作用:用于返回哈希表中,一个或多个给定字段的值。

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

语法:hmget key field1 ... fieldN

return:一个包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样。

3.5 hkeys

作用:用于返回哈希表中,表的所有字段名

语法:hkeys key

return:返回该哈希表中所有的字段名,当 key 不存在时,返回一个空列表。

3.6 hvals

作用:命令返回哈希表所有字段的值

语法:hvals key

return:一个包含哈希表中所有值的表。 当 key 不存在时,返回一个空表。

3.7 hgetall

作用:用于返回哈希表中,所有的字段和值。

语法:hgetall key

return:以列表形式返回哈希表的字段及字段值。 若 key 不存在,返回空列表。

3.8 hdel

作用:命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略

语法:hdel key field1 ...field2

return:被成功删除字段的数量,不包括被忽略的字段。

如果所有的 field 都被删除,则这个哈希表则也会被删除。

也可以直接使用 del 命令删除整个哈希表。

3.9 flushall(全局)

作用:命令用于清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。

语法:flushall

return:总是返回 OK。

4. 列表/链表 List

可重复,按序排列

4.1 rpush

作用:命令用于将一个或多个值插入到列表的尾部(最右边)。

如果列表不存在,一个空列表会被创建并执行 rpush 操作。 当列表存在但不是列表类型时,返回一个错误。

语法:rpush key value1 ...valueN

return:执行 RPUSH 操作后,列表的长度。

4.2 lpush

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

语法:lpush key value1 ...valueN

return:执行 LPUSH 命令后,列表的长度。

4.3 llen

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

语法:llen key

return:列表的长度。

4.4 lrange

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

语法:lrange key start end

return:一个列表,包含指定区间内的元素。

4.5 lrem

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

count > 0:表示从表头到表尾搜索并移除 count 个与 value 相等的元素。

count < 0:表示从表尾到表头搜索并移除 count 个与 value 相等的元素。

count = 0:移除表中所有与 VALUE 相等的值。

语法:lrem key count value

return:被移除元素的数量。 列表不存在时返回 0。

4.6 lindex

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

语法:lindex key index_num

return:列表中下标为指定索引值的元素。 如果指定索引值不在列表的区间范围内,返回 nil 。

5. 集合 Set

跟 Java中的 set 一样,元素不可以重复

5.1 sadd

5.2 smembers

5.3 scard

5.4 srem

6. 有序集合 Sorted Set

有序集合中每个 value 都有一个分数(score),根据分数进行排序。

每个值都要设置分数

6.1 zadd

6.2 zrange

6.3 zrem

最新文章

  1. OAF页面隐藏右上角的全局按钮(主页,注销等)
  2. ACM俱乐部 字符串
  3. python 解析xml 文件: DOM 方式
  4. Qt状态机框架
  5. 关于php的一些安全知识
  6. 8.23.3 IO-转换流的作用
  7. WPF学习笔记2
  8. Android框架之Volley与Glide
  9. LOJ 2548 「JSOI2018」绝地反击 ——二分图匹配+网络流手动退流
  10. python五子棋
  11. HDU1233(Kruskal&amp;Prim两解)
  12. jquery接触初级-----juqery DOM操作实例,动态图片显示
  13. java 调用c++程序实例
  14. UI自动化环境准备
  15. logback-kafka-appender
  16. CAN中如何计算波特率并配置波特率
  17. 大型运输行业实战_day04_1_搭建ssm框架最容易犯的错误
  18. 十五、python沉淀之路--eval()的用法
  19. CMakeFiles/species.inc.dir/build.make:57: recipe for target &#39;CMakeFiles/species.inc&#39; failed
  20. 机器学习(一)——K-近邻(KNN)算法

热门文章

  1. MES系统和ERP系统的区别是什么?
  2. gin项目部署到服务器并后台启动
  3. 媒介查询兼容各种端口的响应式范围取值(移动端、PC端、ipad、移动端侧屏)
  4. C#实现登录某web进而获取其token数据
  5. VM运行centos网络配置(出现错误)详解
  6. C++函数模板和类模板的使用
  7. 研一入坑Go 文件操作
  8. 【第1篇】人工智能(AI)语音测试原理和实践---宣传
  9. iptables介绍和基本使用
  10. 不用终端运行 Vue项目 基于Pycharm