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

发布于:2023-01-16 ⋅ 阅读:(132) ⋅ 点赞:(0)


在这里插入图片描述



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

**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

**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的顺序

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卡住

  • 数据移动,相当于剪切
    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
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到