API的理解和使用——全局命令

全局命令
命令 功能
set 创建键值对
keys 遍历查看所有键
exists 判断一个键是否存在,1存在,0不存在
dbsize 当前数据库中有多少个键
del 删除一个或多个键
expire 设置过期时间
ttl 查看过期时间
type 判断键的类型

Redis有5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令。

1.查看所有键

命令:keys *

#keys *会将所有的键输出
127.0.0.1:6379> keys *
1) "hello"
2) "a"
3) "python"
4) "mylist"
5) "name"

#添加一个键
127.0.0.1:6379> set World peace
OK
127.0.0.1:6379> keys *
1) "hello"
2) "a"
3) "python"
4) "mylist"
5) "World"  #已经添加
6) "name"

2.键总数

命令:dbsize

dbsize命令会返回当前数据库中键的总数。

127.0.0.1:6379> dbsize
(integer) 6   #一共存在6个键
127.0.0.1:6379> keys *  #查看所有
1) "hello"
2) "a"
3) "python"
4) "mylist"
5) "World"
6) "name"

dbsize命令在计算键总数时不会遍历所有键,而是直接获取Redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1)。

keys命令会遍历所有键,所以它的时间复杂度是O(n),当Redis保存了大量键时,线上环境禁止使用。

3检查键是否存在

命令:exists key

如果键存在则返回1,不存在则返回0。

127.0.0.1:6379> exists name
(integer) 1    #存在
127.0.0.1:6379> exists huaxia
(integer) 0    #不存在

4.删除键

命令:del key [key ...]

del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除:

127.0.0.1:6379> del python
(integer) 1    #删除成功
127.0.0.1:6379> exists python
(integer) 0    #查询不存在
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> exists name
(integer) 0

返回结果为成功删除键的个数,假如删除一个不存在的键,就会返回0:

127.0.0.1:6379> del maoxian
(integer) 0  #删除个数为0,证明不存在

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

127.0.0.1:6379> set Paul 3
OK
127.0.0.1:6379> set Harden 13
OK
127.0.0.1:6379> set Gordon 10
OK
127.0.0.1:6379> del Paul Harden Gordon
(integer) 3

5.键过期

语法:expire key times

Redis支持对键添加过期时间,当超过过期时间后,会自动删除键。

127.0.0.1:6379> set manzi zero
OK    #添加一个键
127.0.0.1:6379> expire manzi 8
(integer) 1     #设置8秒的过期时间
127.0.0.1:6379> ttl manzi
(integer) 3     #还剩3秒
127.0.0.1:6379> ttl manzi
(integer) -2    #键已经被删除

ttl命令会返回键的剩余过期时间,它有3种返回值:

(1)大于等于0的整数:键剩余的过期时间。

(2)-1:键没设置过期时间

(3)-2:键不存在

127.0.0.1:6379> exists hello
(integer) 1    #键存在
127.0.0.1:6379> ttl hello
(integer) -1   #没有设置过期时间

6.键的数据结构类型

命令:type key

127.0.0.1:6379> set a b
OK
127.0.0.1:6379> type a
string  #字符串
127.0.0.1:6379> rpush list_one a b c d e
(integer) 5
127.0.0.1:6379> type list_one
list       #列表

键的数据类型指的是它的值代表的数据类型,单独讨论键没有意义。

时间: 2024-10-11 04:34:16

API的理解和使用——全局命令的相关文章

深入剖析Redis系列(四) - Redis数据结构与全局命令概述

前言 Redis 提供了 5 种数据结构.理解每种数据结构的特点,对于 Redis 的 开发运维 非常重要,同时掌握 Redis 的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事半功倍. 接下来的几篇文章,将从如下几个方面介绍 Redis 的几种数据结构,命令使用及其应用场景. 预备知识:几个简单的 全局命令,数据结构 和 内部编码,单线程命令 处理机制分析. 数据结构特性:5 种 数据结构 的特点.命令使用.应用场景. 数据管理:键管理.遍历键.数据库管理. 正文 1. 预备知识

深入剖析Redis系列:Redis数据结构与全局命令概述

前言 Redis 提供了 5 种数据结构.理解每种数据结构的特点,对于 Redis 的 开发运维 非常重要,同时掌握 Redis 的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事半功倍. 接下来的几篇文章,将从如下几个方面介绍 Redis 的几种数据结构,命令使用及其应用场景. 预备知识:几个简单的 全局命令,数据结构 和 内部编码,单线程命令 处理机制分析. 数据结构特性:5 种 数据结构 的特点.命令使用.应用场景. 数据管理:键管理.遍历键.数据库管理. 正文 1. 预备知识

如何在Vue中建立全局引用或者全局命令

1 一般在vue中,有很多vue组件,这些组件每个都是一个文件.都可能需要引用到到相同模块.我们不想每个文件都import 一次模块. 如果是vue编写的插件我们可以用 Vue.use(...) 2 但是如果想添加一个全局命令,同时又让每个vue的文件都能用到怎么办? 第一步:最好建立一个全局的命令文件例如:directive/directive.js 第二步:利用Vue.directive()建立一个全局命令,并将它暴露出来,例如一个focus 让表单自动聚焦 第三部步:在main.js(入口

sas宏(3)宏,调试宏,创建带参数的宏,理解符号表(全局宏与局部宏解析),宏条件运算符,在宏中进行运算

宏类似于c中的函数,传入指定参数后执行,并且宏内部可以包含data步程序和条件运算符号. 宏变量只是小小的变量....(by the way作用也很大) 1:宏的基本语法 如何创建一个简单的宏并使用? %macro prtlast; proc print data=&syslast (obs=5); title "Listing of &syslast data set"; run; %mend; %prtlast /*不要加分号,加了有可能出错*/ 宏创建过程中做了什

qnx:从API开始理解QNX -- 消息传递

从API开始理解QNX -- 消息传递    http://www.openqnx.com/chinese/viewtopic.php?f=5&t=2161 1. 频道与连接    Channel, Connect        server:        ChannelId = ChannelCreate(Flags);    client:        ConnectionId = ConnectAttach(Node, Pid, Chid, Index, Flag);        N

第二章 API的理解和使用

2.1.1全局命令 Key * 查看所有键,(慎用,会把所有键都遍历一次并列出) Dbsize 查看键总数,不会遍历所有键,只是从内置函数中读取一个数 Exists [key] 检查键是否存在 Del [key] 删除键 Expire [key] [seconds] 设置键过期时间 Type [key] 键的数据结构类型 2.1.2数据结构和内部编码 Type命令实际返回的就是当前键的数据结构类型:string字符串,hash哈希,list列表,set集合,zset有序集合,但这些只是redis

(二)redis API的理解和使用

一.全局命令 1.keys * 查看所有键 时间复杂度为O(n),线上环境禁止使用 2.dbsize    查看键总数 3.rpush 插入一个列表类型的键值对 rpush  mylist  a b c d 4.exists key 查看键是否存在,如果存在返回1,不存在返回0 5.del  key [key ...]    删除键,返回成功删除键的个数 6.expire 设置键过期 expire  hello 10 设置键10s过期 7.ttl 返回键的剩余过期时间,大于等于0    -1(没

API的理解和使用——字符串的命令

字符串的命令复习表 命令 作用 set   setex   setnx   get   mset   mget   incr   decs   incrby   decrby   incrbyfloat   append   strlen   getset   setrange   getrange   字符串类型是Redis最基础的数据结构.首先键都是字符串类型. 而且其他几种数据结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习奠定基础. 字符串类型的值可以是字符串(

API的理解和使用——哈希类型的命令

哈希常用的命令复习 命令 功能 hset key field value 设置哈希值 hsetnx 设置哈希值,field或键必须不存在 hget 获取某个file对应的值 hdel 删除一个或多个field-value hlen 计算field的个数 hmset 批量设置field-value hmget 批量获取field-value hexists 判断某个field是否存在 hkeys 获取所有的field hvals 获取所有的value hgetall 获取所有的field-valu