• 【Redis学习笔记】第三章 Redis通用指令



    在这里插入图片描述



    1、key的通用操作

    各种数据类型中,key都是一个字符串,通过key获取redis中保存的数据。


    **key通用的基本操作:**

    • 删除指定的key
      del key

    • 获取key是否存在
      exists key

    • 获取key的类型
      type key
    127.0.0.1:6379> set str str
    OK
    127.0.0.1:6379> hset hash hash hash1
    (integer) 1
    127.0.0.1:6379> lpush list list1
    (integer) 1
    127.0.0.1:6379> sadd set set1
    (integer) 1
    127.0.0.1:6379> zadd zset 1 zset1
    (integer) 1
    
    127.0.0.1:6379> type zset
    zset
    
    127.0.0.1:6379> exists str
    (integer) 1
    127.0.0.1:6379> del str
    (integer) 1
    127.0.0.1:6379> exists str
    (integer) 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    **key通用的扩展操作--时效:**

    • 为指定的key设置有效期
      expire key seconds
      pexpire key milliseconds //毫秒
      expireat key timestamp //使用时间戳
      pexpireat key milliseconds-timestamp

    • 获取key的有效时间
      ttl key
      pttl key
      key不存在返回-2,存在返回-1,存在但设置了有效时长,则返回剩余时长

    • 将key从时效性转换为永久性,实现永久保存
      persist key

    127.0.0.1:6379> expire zset 30
    (integer) 1
    127.0.0.1:6379> ttl zset
    (integer) 23
    
    127.0.0.1:6379> persist zset
    (integer) 1
    127.0.0.1:6379> ttl zset
    (integer) -1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    **key通用的扩展操作--查询:**

    • 查询key
      keys pattern

      其中的pattern,*匹配任意数量的任意符号 ? 配合一个任意符号 [] 匹配一个指定符号
    常用表达式含义
    keys *查询所有key
    keys it*查询所有以it开头的key
    keys ??test查询所有前面两个字符任意,且以test结尾的key
    keys u[st]er:1查询所有以u开头,以er:1结尾,中间包含一个字母s或t的key

    **key的其他通用操作:**

    • 为key改名
      rename key newkey
      renamenx key newkey //key不存在时改名

    • 对所有的key排序
      sort key

    • 其他通用查看
      help @generic
    127.0.0.1:6379> set key01 v1
    OK
    127.0.0.1:6379> set key02 v2
    OK
    127.0.0.1:6379> rename key01 key02
    OK
    127.0.0.1:6379> get key02
    "v1"
    ***注意这里是旧的key的values,相当于set 新key 旧value
    --------------------------------------------------------
    127.0.0.1:6379> set key001 v1
    OK
    127.0.0.1:6379> set key002 v2
    OK
    127.0.0.1:6379> renamenx key001 key002
    (integer) 0    //失败
    ---------------------------------------------------------
    127.0.0.1:6379> lpush list001 12 11 19 18 100 50 101
    (integer) 7
    127.0.0.1:6379> lrange list001 0 -1
    1) "101"
    2) "50"
    3) "100"
    4) "18"
    5) "19"
    6) "11"
    7) "12"
    127.0.0.1:6379> sort list001
    1) "11"
    2) "12"
    3) "18"
    4) "19"
    5) "50"
    6) "100"
    7) "101"
    127.0.0.1:6379> lrange list001 0 -1
    1) "101"
    2) "50"
    3) "100"
    4) "18"
    5) "19"
    6) "11"
    7) "12"   //注意sort并没有改变原list的顺序
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    2、数据库通用操作

    随着数据量的暴增,key的数量也会增加,极易出现key的重复或冲突,为此,redis为每个服务提供有16个数据库,编号0到15,每个数据库之间的数据相互独立。

    在这里插入图片描述

    • 切换数据库
      select index

    • 其他
      quit
      ping
      echo message
    127.0.0.1:6379> select 15
    OK
    127.0.0.1:6379[15]> select 16
    (error) ERR DB index is out of range
    127.0.0.1:6379[15]> select 0
    OK
    127.0.0.1:6379>  //看到我们默认在0号数据库
    ------------------------------------------------
    127.0.0.1:6379> ping
    PONG
    //测试服务器是否连通,断开redis-server,ping卡住
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    • 数据移动,相当于剪切
      move key db

    • 数据清除
      dbsize //查看当前库有多少条数据
      flushdb //清空当前编号数据库的数据
      flushall //清空0-15数据库
    127.0.0.1:6379> set test 1
    OK
    127.0.0.1:6379> move test 6
    (integer) 1
    127.0.0.1:6379> get test
    (nil)
    127.0.0.1:6379> select 6
    OK
    127.0.0.1:6379[6]> get test
    "1"
    -------------------------------------------
    127.0.0.1:6379[6]> flushdb
    OK
    127.0.0.1:6379[6]> keys *
    (empty list or set)
    -------------------------------------------
    127.0.0.1:6379[6]> select 0
    OK
    127.0.0.1:6379> dbsize
    (integer) 38
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    java-net-php-python-net本科生毕业设计选导师系统演示录像2019计算机毕业设计程序
    SECCON CTF 2022 web复现
    【附源码】Python计算机毕业设计社区物品交易系统
    双色球机器人博客博客,双色球预测程序算法
    web前端-javascript-标识符(说明,命名规则、不以数字关键字保留字开头、驼峰命名,补充)
    利用Python实现邮件发送
    智能运维之告警聚合技术介绍
    【深度学习基础】模型文件介绍
    牛客网Verilog刷题 | 快速入门-基础语法
    运放噪声频率曲线-运放噪声计算-运算放大器
  • 原文地址:https://blog.csdn.net/llg___/article/details/126356144