KEYS

  • 语法: KEYS pattern
  • 功能: 返回所有匹配 pattern 的键
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(N) N指的是在数据库中的键的数量

不建议在生成环境使用该命令,因为是扫描整个数据库的键查询,会造成阻塞

支持的全局样式模式:

  • h?llo 匹配 hello,hallo并且hxllo
  • h*llo 匹配 hllo 和 heeeello
  • h[ae]llo 匹配 hello 和 hallo,不匹配 hillo
  • h[^e]llo 匹配 hallo, hbllo, ... 但不匹配 hello
  • h[a-b]llo 匹配 hallo 和 hbllo

如果要逐字匹配特殊字符,请使用转义字符 \

# 查看所有的键
127.0.0.1:6379> keys *
1) "age"
2) "color"
3) "gender"
4) "name" # 查看以a开头的键
127.0.0.1:6379> keys a*
1) "age" # 查看包含a的键
127.0.0.1:6379> keys *a*
1) "age"
2) "name"
127.0.0.1:6379>

DEL

  • 语法: DEL key [key ...]
  • 功能: 删除指定的键,如果键不存在,则忽略它
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(N) 其中 N 是要移除的键的数量, 当要删除的键包含字符串以外的值时,该键的单个复杂度为 O(M),其中 M 是列表、集合、排序集或散列中的元素数。删除包含字符串值的单个键是 O(1)。

示例:

127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

EXISTS

  • 语法: EXISTS key [key ...]
  • 功能: 检查指定的键是否存在
  • 可以使用该命令的Redis版本: 1.0.0 (3.0.3版本之后才接受多个key)
  • 时间复杂度: O(N) N指的是要检查的键的数量
  • 返回一个整数, 它指的是要检查的键中, 存在的键的个数

示例:

127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> EXISTS name
(integer) 1
127.0.0.1:6379> EXISTS name age
(integer) 2
127.0.0.1:6379> EXISTS gender
(integer) 0
127.0.0.1:6379> EXISTS name gender
(integer) 1
127.0.0.1:6379>

EXPIRE

  • 语法: EXPIRE key seconds [ NX | XX | GT | LT]
  • 功能: 设置键的超时时间(单位/秒),超时后,键被自动删除
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(1)
  • 返回一个整数
    • 1 如果超时被设置成功
    • 0 如果超时被设置失败 (例如:键不存在,或者由于提供的参数而跳过了操作)

*注意: 这个超时的设置只会被删除或覆盖键内容的命令清除,包括 DEL, SET, GETSET 和 所有的 STORE 命令。

这意味着,所有在概念上更改存储在键中的值而不使用新值替换的操作都将保持超时不变。

例如: 使用 INCR 增加键的值, 使用 LPUSH 向列表压入新的值,或者使用 HSET 修改散列的字段值, 这些操作都不会影响超时时间。

TTL

  • 语法: TTL key
  • 功能: 返回具有超时的键的剩余生存时间(单位/秒)
  • 可以使用该命令的Redis版本: 1.0.0
  • 时间复杂度: O(1)
  • 返回一个整数, 以秒为单位的 TTL
    • 如果键不存在,该命令将返回 -2 (2.8.0 版本增加的)
    • 如果键存在但没有关联的过期,则该命令返回 -1

示例:

127.0.0.1:6379> SET name tom
OK
127.0.0.1:6379> EXPIRE name 100
(integer) 1
127.0.0.1:6379> TTL name
(integer) 98 127.0.0.1:6379> SET age 22
OK
127.0.0.1:6379> TTL age
(integer) -1
127.0.0.1:6379>

Redis 通用命令的更多相关文章

  1. redis通用命令

    1.keys pattern 含义:查找所有符合给定模式(pattern)的key keys * 遍历所有key keys he[h-l]* 遍历以he开头,第三个字符为h-l之间的所有key key ...

  2. Redis通用命令(七)

    Keys的通用操作: (1)获得所有的keyskeys *(2)查看my开头的keykeys my?(3)删除keydel key1 key2(4)key是否存在exists key1 exists ...

  3. 02 redis通用命令操作

    set hi hello 设置值 get hi 获取值 keys * 查询出所有的key memcached 不能查询出所有的key keys *h 模糊查找key keys h[ie] 模糊查找 k ...

  4. Redis入门到高可用(三)——通用命令

    通用命令  参考 http://redisdoc.com/index.html 1. keys  #查看所有key 时间复杂度:O(N), N 为数据库中 key 的数量. 127.0.0.1:637 ...

  5. Centos7.2下安装redis&通用键值命令

    Centos7.2下安装redis&通用键值命令 Centos7.2下安装redis 官方网站:https://redis.io/ 1.进入/usr/local/src/目录 cd /usr/ ...

  6. 3年Java开发都知道的Redis数据结构和通用命令

    Redis的数据结构 Redis支持多种不同的数据结构,包括5种基础数据结构和几种比较复杂的数据,这些数据结构可以满足不同的应用场景. 五种基础数据结构 String:字符串,是构建其他数据结构的基础 ...

  7. redis 学习(二)-- 通用命令

    redis 学习(二)-- 通用命令 1. keys pattern 含义:查找所有符合给定模式(pattern)的key 命令 含义 keys * 遍历所有 key keys he[h-l]* 遍历 ...

  8. Redis 全局通用命令整理

    转载请注明出处: 1.查看所有键 keys * 该命令会存在线程阻塞问题,keys 命令也可以通过正则匹配获取存在的缓存数据 2.查看键总数 dbsize dbsize命令会返回当前数据库中键的总数. ...

  9. Redis 常用命令学习一:通用的基本命令

    1-链接,如果需要的 Redis 部署在远程机器上,可以通过以下命令链接,其中-h后面跟着主机名,-p后面跟端口名 redis-cli -h 233.2.2.4 -p 666 2-PING 命令用来测 ...

  10. 转:redis常用命令

    一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...

随机推荐

  1. Python 项目组织最佳实践:从脚本到大型项目的进化之路

    在 Python 开发生涯中,相信很多人都是从写简单脚本开始的.随着项目规模扩大,我们会遇到各种项目组织的问题.今天,让我们从一个实际场景出发,看看如何一步步优化 Python 项目结构,实现从简单脚 ...

  2. .NET周刊【12月第4期 2024-12-22】

    国内文章 dotnet 简单使用 ICU 库进行分词和分行 https://www.cnblogs.com/lindexi/p/18622917 本文将和大家介绍如何使用 ICU 库进行文本的分词和分 ...

  3. STL 容器操作

    vector set转化为vector:vec.assign(set.begin(), set.end()) map 1. map默认从小到达排序,想要从大到小,可以: map<string, ...

  4. 基于FATE的可验证秘密分享算法详解及应用场景分享:学习

    内容来自"光大科技-基于FATE的可验证秘密分享算法详解及应用场景分享" 理论 基于Shamir的秘密共享方案,通过多项式插值实现. 加入可验证功能,即发送多项式系数的模数给对方作 ...

  5. 搭建个人AI知识库-DIFY

    前提 本地目前没有显卡,只能用cpu刚. 如果不想自己搭建本地模型,完全可以掏钱使用现成的API即可. 需要了解一些docker知识 搭建本地模型 环境 os: archlinux 内存: 32g c ...

  6. 0511-FileWrite字符输出流和JDK7中try..finally新的特性

    package A10_IOStream; import java.io.*; /* java.io.Writer:字符输出流,是所有字符数出流的最顶层抽象父类 共性方法 void write(int ...

  7. NFS v3及v4协议区别

    本文分享自天翼云开发者社区<NFS v3及v4协议区别>,作者:章****凯 NFS v4相比v3,有部分功能的增强,如果应用需要实现如下功能,则必须使用NFS v4(建议和应用侧确实是否 ...

  8. FFT & NTT & FWT

    只是学习笔记,真心推荐 cmd ,他讲的真的细到把所有的前置知识都讲了一遍. \[FBI \ WARNING:本篇 NTT 部分非常不完善 \] FFT & NTT & FWT 大杂烩 ...

  9. c++用正则表达式判断匹配字符串中的数字数值(包括负数,小数,整数)MFC编辑框判断数值

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12097381.html 因为今天做那个MFC的编辑框有一些框就是要判断输入的是否是数值,一开始 ...

  10. Azure - [01] 订阅管理

    题记部分 001 || 核心功能 (1)访问控制   Azure订阅通过基于角色的访问控制(RBAC)系统,允许管理员精细管理用户.组和应用程序对资源的访问权限.RBAC系统通过将权限分配给角色,再将 ...