Redis命令操作

Redis的全局命令概念

一些 Redis的全局命令、数据结构和内部编码、单线程命令处理机制是非常必要的,它们可以为以后的学习奠定良好的基础,主要体现在两个方面:第一, Redis的命令有上百个,这完全是死记硬背的问题,但是如果你了解了 Redis的某些机制,你就会发现这些命令非常通用。其次, Redis并非万金油,某些数据结构和命令必须在特定的场景中使用,一旦使用不当就会给 Redis本身或应用程序带来致命的伤害。

全局命令:

Redis有5种数据结构,它们都是键值对中的值,还有一些常用的键命令。

1、查看所有键(keys *):

插入3对string类型的键值对:

node01:6379> set hello world

node01:6379> set java jedis

node01:6379> set python redis-py

Keys*命令将输出所有键:

node01:6379> keys *

1) "python"

2) "java"

3) "hello"

2、键总数(dbsize):

为 list类型插入键-值对(值由多个元素组成):

node01:6379> rpush mylist a b c d e f g

(integer) 7

这个 bsize命令返回当前数据库中的所有键。举例来说,当前数据库拥有 hello、 java、 python、 mylist四个键,因此 dbsize的结果为4:

node01:6379> dbsize

(integer) 4

在计算键的总数时, dbsize命令不会遍历所有键,而是直接获得 Redis内置的键的总数变量,因此 dbsize命令的时间复杂度为 O (1)。而且 keys命令将遍历所有键,因此它的时间复杂度为 O (n),如果 Redis有很多键,则不允许在线环境使用。

3、查看键是否存在(exists key):

键存在则返回1,不存在则返回0:

node01:6379> exists java

(integer) 1

node01:6379> exists not_exist_key

(integer) 0

4、删除键(del key [key ...]):

del命令是一条通用命令,不管该值是什么数据结构类型,都可以删除该值,例如下面分别删除 string类型的 key java和 list类型的 key mylist:

node01:6379> del java

(integer) 1

node01:6379> exists java

(integer) 0

node01:6379> del mylist

(integer) 1

node01:6379> exists mylist

(integer) 0

返回结果为成功删除键的个数,假定移除不存在的键会传回0。

node01:6379> del not_exist_key

(integer) 0

同时del命令可以支持删除多个键

node01:6379> set a 1

node01:6379> set b 2

node01:6379> set c 3

node01:6379> del a b c

(integer) 3

5、键过期(expire key seconds):

Redis支持对键添加过期时间,超过过期时间时将自动删除该键,例如为“hadoop键”设置10秒的过期时间

node01:6379> set hadoop world

node01:6379> expire hadoop 10

(integer) 1

ttl命令将返回该键的剩余有效期,返回值有3种:

1、比0大的整数:键的剩余有效期。

2、-1:键没有设置到期日期。

3、-2:键不存在。

ttl命令可用于观察键 hadoop的剩余过期时间:

node01:6379> ttl hadoop

(integer) 5

...

#还剩1秒

node01:6379> ttl hadoop

(integer) 1

#返回结果为-2,说明键hello已经被删除

node01:6379> ttl hadoop

(integer) -2

node01:6379> get hadoop

(nil)

6、键对应的数据结构类型(type key):

举例来说, hadoop键是 string类型,返回的结果是 string。关键字 mylist是列表类型,并返回一个list

node01:6379> set a b

node01:6379> type a

string

node01:6379> rpush mylist a b c d e f g

(integer) 7

node01:6379> type mylist

list

如果键不存在,则返回none:

node01:6379> type not_exsit_key

none

如果觉得对你有所帮助。记得收藏和关注呦!(每日更新各种大数据框架)

如需转载请注明出处(创作不易请见谅)

和巨婴程序猿一起成长。让自己变得更优秀

想了解更多精彩内容,快来关注跟着巨婴去逆袭

我最近一直在思考(大数据通俗讲解)的问题,你的看法是什么呢?关注我快说出来一起交流一下吧~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200708A0BMJG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券