zoukankan      html  css  js  c++  java
  • REDIS 键命令整理

    redis 键命令

    Redis 键命令用于管理 redis 的键. 原文

    语法

    COMMAND key [key ...]
    

    键命令

    DEL

    删除指定键, 返回被删除键的数量, 若键不存在直接忽略. 官方文档

    语法

    DEL key [key ...]
    

    返回值

    • 被删除键的数量

    示例

    redis> SET key1 "Hello"
    "OK"
    redis> SET key2 "World"
    "OK"
    redis> DEL key1 key2 key3
    (integer) 2 
    

    EXISTS

    检测指定键是否存在. 官方文档

    语法

    EXISTS key [key ...]
    

    返回值

    • 存在的键的数量

    示例

    redis> SET key1 "Hello"
    "OK"
    redis> EXISTS key1
    (integer) 1
    redis> EXISTS nosuchkey
    (integer) 0
    redis> SET key2 "World"
    "OK"
    redis> EXISTS key1 key2 nosuchkey
    (integer) 2
    

    EXPIRE

    设置键 key 的有效期, 若 key 有效期已存在则更新. 过了有效期后, 键 key 会被自动删除 官方文档

    语法

    EXPIRE key seconds
    
    • seconds 有效期, 单位秒.

    返回值

    • 1 有效期被设值成功
    • 0 key 不存在

    示例

    redis> SET mykey "Hello"
    "OK"
    redis> EXPIRE mykey 10
    (integer) 1
    redis> TTL mykey
    (integer) 10
    redis> TTL mykey    -- 10 秒执行
    (integer) -2       -- key 不存在返回 -2     
    redis> SET mykey "Hello World"
    "OK"
    redis> TTL mykey
    (integer) -1       -- key 没有有效期关联返回 -1
    

    PEXPIRE 同 EXPIRE, 区别 PEXPIRE 单位为毫秒

    EXPIREAT

    功能类似 EXPIRE, 不过此命令设置的有效期是时间点, 值为自1970年1月1日以来的秒数. 官方文档

    语法

    EXPIREAT key timestamp
    
    • timestamp 时间戳

    返回值

    • 1 有效期被设值成功
    • 0 key 不存在

    示例

    redis> SET mykey "Hello"
    "OK"
    redis> EXISTS mykey
    (integer) 1
    redis> EXPIREAT mykey 1293840000
    (integer) 1
    redis> EXISTS mykey
    (integer) 0
    

    PEXPIREAT 同 EXPIREAT, 区别 PEXPIREAT 单位为毫秒

    KEYS

    返回所有匹配指定模式的 KEY. 该指令通常用于调试问题, 尽量避免在应用代码中使用, 若有类似需求可以考虑使用 SCAN 命令或者 sets 数据结构. 官方文档

    语法

    KEYS pattern
    

    支持的模式 pattern 的规则如下:

    • 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 and hbllo

    返回值

    • 匹配 key 列表

    示例

    redis> MSET firstname Jack lastname Stuntman age 35
    "OK"
    redis> KEYS *name*
    1) "lastname"
    2) "firstname"
    redis> KEYS a??
    1) "age"
    redis> KEYS *
    1) "lastname"
    2) "age"
    3) "firstname"
    

    MIGATE

    迁移指定 KEY. 官方文档

    语法

    MIGRATE host port key|"" destination-db timeout [COPY] [REPLACE] [KEYS key [key ...]]
    

    选项

    • COPY 不删除当前实例中的 KEY
    • REPLACE 替换远程实例已存在的 KEY
    • KEYS 指定 KEY, 若为空则为所有 KEY

    返回值

    • OK 命令执行成功
    • NOKEY 当前实例为空

    实例

    MIGRATE 192.168.1.34 6379 "" 0 5000 KEYS key1 key2 key3
    

    MOVE

    将指定 KEY 移至指定 DB. 官方文档

    语法

    MOVE key db
    

    返回值

    • 1 指定 KEY 被移动成功
    • 0 指定 KEY 不存在

    OBJECT

    查看 Redis 的内部对象, 通常用于调试. 官方文档

    语法

    OBJECT subcommand [arguments [arguments ...]]
    

    OBJECT 命令支持的子命令:

    • OBJECT REFCOUNT <key> 返回指定 KEY 关联值引用的数量.
    • OBJECT ENCODING <key> 返回指定 KEY 关联值存贮的编码方式
    • OBJECT IDLETIME <key> 返回指定 KEY 未使用的时长
    • OBJECT FREQ <key> 返回指定 KEY 使用频率
    • OBJECT HELP 打印该命令帮助信息

    示例

    redis> lpush mylist "Hello World"
    (integer) 4
    redis> object refcount mylist
    (integer) 1
    redis> object encoding mylist
    "ziplist"
    redis> object idletime mylist
    (integer) 10
    

    PERSIST

    移除 key 的过期时间. 官方文档

    语法

    PERSIST key
    

    返回值

    • 1 指定 key 的过期时间被移除
    • 0 指定 key 不存在或未设置过期时间

    示例

    redis> SET mykey "Hello"
    "OK"
    redis> EXPIRE mykey 10
    (integer) 1
    redis> TTL mykey
    (integer) 10
    redis> PERSIST mykey
    (integer) 1
    redis> TTL mykey
    (integer) -1
    

    RANDOMKEY

    从当前数据库中返回一个随机 KEY. 官方文档

    返回值

    • key 一个随机 KEY
    • nil 数据库为空时返回

    RENAME

    重命名 KEY, 若新 KEY 已存在则会被覆盖. 官方文档

    语法

    RENAME key newkey
    

    示例

    redis> SET mykey "Hello"
    "OK"
    redis> RENAME mykey myotherkey
    "OK"
    redis> GET myotherkey
    "Hello"
    

    RENAME

    重命名 KEY, 若新 KEY 已存在则会出错. 官方文档

    语法

    RENAMENX key newkey
    

    示例

    redis> SET mykey "Hello"
    "OK"
    redis> SET myotherkey "World"
    "OK"
    redis> RENAMENX mykey myotherkey
    (integer) 0
    redis> GET myotherkey
    "World"
    

    SCAN

    遍历当前数据库 key. 官方文档

    语法

    RENAMENX cursor
    
    • cursor 起始光标

    返回值

    • cursor 下次 SCAN 的其实位置

    示例

    redis> SET mykey "Hello"
    "OK"
    redis> SET myotherkey "World"
    "OK"
    redis> RENAMENX mykey myotherkey
    (integer) 0
    redis> GET myotherkey
    "World"
    

    SORT

    排序数据结构 list, set, sorted set 的 key. 官方文档

    示例

    SORT mylist   # 默认升序 key 为数字
    SORT mylist DESC  # 降序 key 为数字
    SORT mylist ALPHA # 字典序 key 为字符串
    SORT mylist LIMIT 0 10 # 分页
    SORT mylist LIMIT 0 5 ALPHA DESC # 选项组合
    SORT mylist BY weight_* # 外部 KEY 排序  weight_1, weight_2, ...
    SORT mylist BY nosort # 跳过排序 KEY, 获取外部 KEY
    SORT mylist BY weight_* GET object_* # 获取指定外部 KEY, GET 选项可以使用多次, 获取 GET 本身使用模式符 #, 如: SORT mylist BY weight_* GET object_* GET #
    SORT mylist BY weight_* STORE resultkey # 存贮排序结果  
    SORT mylist BY weight_*->fieldname GET object_*->fieldname # 指定对象排序的 KEY
    

    TOUCH

    更新 KEY 的最后访问时间, 若 KEY 不存在则忽略. 官方文档

    语法

    TOUCH key [key ...]
    

    返回值

    • 返回被更新 KEY 的个数.

    示例

    redis> SET key1 "Hello"
    "OK"
    redis> SET key2 "World"
    "OK"
    redis> TOUCH key1 key2
    (integer) 2
    

    TTL

    获取的 KEY 的过期时间. 官方文档

    语法

    TTL key
    

    返回值

    • 指定 key 的过期时间
    • -2 指定 key 不存在
    • -1 指定 key 未设置过期时间

    示例

    redis> SET mykey "Hello"
    "OK"
    redis> EXPIRE mykey 10
    (integer) 1
    redis> TTL mykey
    (integer) 10
    

    ** PTTL 同 TTL, 区别 PTTL 返回时间单位是毫秒**

    TYPE

    获取指定 KEY 的数据类型. 官方文档

    语法

    TYPE key
    

    返回值

    • 指定 key 的过期时间
    • none 指定 key 不存在

    示例

    redis> SET key1 "value"
    "OK"
    redis> LPUSH key2 "value"
    (integer) 1
    redis> SADD key3 "value"
    (integer) 1
    redis> TYPE key1
    "string"
    redis> TYPE key2
    "list"
    redis> TYPE key3
    "set"
    

    同 DEL 指令, UNLINK 是从 KEY 空间中移除指定 KEY, 是内存级删除非阻塞. 实际删除将在后续持久化中发生. 官方文档

    语法

    UNLINK key [key ...]
    

    返回值

    • 被移除 KEY 的数量.

    示例

    redis> SET key1 "Hello"
    "OK"
    redis> SET key2 "World"
    "OK"
    redis> UNLINK key1 key2 key3
    (integer) 2
    

    WAIT (待完善)

    阻塞当前客户端直到之前所有写命令被成功备份或到达指定的备份命令的数量, 若指定的超时(单位毫秒)到达将返回还未成功备份的命令数量. 官方文档

    语法

    WAIT numreplicas timeout
    
    • numreplicas 备份的数量
    • timeout 阻塞超时时间

    返回值

    • 备份的数量

    示例

    > SET foo bar
    OK
    > WAIT 1 0
    (integer) 1
    > WAIT 2 1000
    (integer) 1
    
  • 相关阅读:
    微人事项目-mybatis-持久层
    通过外键连接多个表
    springioc
    Redis 消息中间件 ServiceStack.Redis 轻量级
    深度数据对接 链接服务器 数据传输
    sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
    sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
    sql server 远程备份 bak 删除
    冒泡排序
    多线程 异步 beginInvoke EndInvoke 使用
  • 原文地址:https://www.cnblogs.com/--xiaoyao--/p/11304240.html
Copyright © 2011-2022 走看看