Jean's Blog

一个专注软件测试开发技术的个人博客

0%

Redis数据库操作相关指令

数据库操作指令

Redis中库说明

  • 库:database用来存放数据一个基本单元,一个库可以存放key-value键值对redis中每一个都有一个唯一名称|编号,从0开始

  • 默认库的个数:16个库,库的编号:0-15,默认使用的是0号库,注意:库的个数可以在redis.conf中修改

    1
    2
    3
    4
    # Set the number of databases. The default database is DB 0, you can select
    # a different one on a per-connection basis using SELECT <dbid> where
    # dbid is a number between 0 and 'databases'-1
    databases 16

Redis库的操作

  • 切换库指令:select 库的编号

    1
    2
    3
    4
    5
    [root@localhost bin]# ./redis-cli -h localhost -p 6379
    localhost:6379> select 0
    OK
    localhost:6379> select 1
    OK
  • 清除库指令

    • 清空当前的库 FLUSHDB
    • 清空全部的库 FLUSHALL
  • 客户端显示中文

    1
    2
    [root@localhost bin]# ./redis-cli -h localhost -p 6379 --raw
    localhost:6379>

操作key相关指令

image-20220714104657350

DEL指令

  • 语法 : DEL key [key …]
  • 作用 : 删除给定的一个或多个key ,不存在的key 会被忽略
  • 可用版本: >= 1.0.0
  • 返回值: 被删除key 的数量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
localhost:6379> set name zhangsan
OK
localhost:6379> set age 19
OK
localhost:6379> set bir 2021-03-25
OK
localhost:6379> set content 北京市丰台区
OK
localhost:6379> keys *
age
content
name
bir
localhost:6379> del bir age
2
localhost:6379> keys *
content
name

EXISTS指令

  • 语法: EXISTS key
  • 作用: 检查给定key 是否存在
  • 可用版本: >= 1.0.0
  • 返回值: 若key 存在,返回1 ,否则返回0
1
2
3
4
5
6
localhost:6379> exists name
1
localhost:6379> exists age
0
localhost:6379> exists name age bir (只要有一个存在,就返回1)
1

EXPIRE

  • 语法: EXPIRE key seconds
  • 作用: 为给定key 设置生存时间,当key 过期时(生存时间为0 ),它会被自动删除。
  • 可用版本: >= 1.0.0
  • 时间复杂度: O(1)
  • 返回值:设置成功返回1
1
2
3
4
5
6
7
localhost:6379> keys *
content
name
localhost:6379> expire name 10
1
localhost:6379> keys *
content

KEYS

  • 语法 : KEYS pattern
  • 作用 : 查找所有符合给定模式pattern 的key 。
  • 语法:
    • KEYS *匹配数据库中所有key
    • KEYS h?llo 匹配hello ,hallo 和hxllo 等
    • KEYS h*llo 匹配hllo 和heeeeello 等
    • KEYS h[ae]llo 匹配hello 和hallo ,但不匹配hillo 。特殊符号用 “\” 隔开
  • 可用版本: >= 1.0.0
  • 返回值: 符合给定模式的key 列表。

MOVE

  • 语法 : MOVE key db
  • 作用 : 将当前数据库的key 移动到给定的数据库db当中
  • 可用版本: >= 1.0.0
  • 返回值: 移动成功返回1 ,失败则返回0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
localhost:6379> select 0
OK
localhost:6379> keys *
name
content
localhost:6379> select 1
OK
localhost:6379[1]> keys *

localhost:6379[1]> select 0
OK
localhost:6379> move content 1
1
localhost:6379> keys *
name
localhost:6379> select 1
OK
localhost:6379[1]> keys *
content
localhost:6379[1]> get content
北京市丰台区

PEXPIRE

  • 语法 : PEXPIRE key milliseconds
  • 作用 : 这个命令和EXPIRE 命令的作用类似,但是它以毫秒为单位设置key 的生存时间,而不像EXPIRE 命令那样,以秒为单位
  • 可用版本: >= 2.6.0
  • 时间复杂度: O(1)
  • 返回值:设置成功,返回1 key 不存在或设置失败,返回0

PEXPIREAT

  • 语法 : PEXPIREAT key milliseconds-timestamp
  • 作用 : 这个命令和EXPIREAT 命令类似,但它以毫秒为单位设置key 的过期unix 时间戳,而不是像EXPIREAT那样,以秒为单位
  • 可用版本: >= 2.6.0
  • 返回值:如果生存时间设置成功,返回1 。当key 不存在或没办法设置生存时间时,返回0 。(查看EXPIRE 命令获取更多信息)

TTL

  • 语法 : TTL key
  • 作用 : 以为单位,返回给定key 的剩余生存时间(TTL, time to live)
  • 可用版本: >= 1.0.0
  • 返回值:
    • 当key 不存在时,返回-2
    • 当key 存在但没有设置剩余生存时间时,返回-1
    • 否则,以秒为单位,返回key 的剩余生存时间
  • Note : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1
1
2
3
4
5
6
7
8
9
10
11
12
localhost:6379> keys *
name
localhost:6379> ttl name
-1
localhost:6379> ttl content
-2
localhost:6379> set address 北京市
OK
localhost:6379> expire address 100
1
localhost:6379> ttl address
94

PTTL

  • 语法 : PTTL key
  • 作用 : 这个命令类似于TTL 命令,但它以毫秒为单位返回key 的剩余生存时间,而不是像TTL 命令那样,以秒为单位
  • 可用版本: >= 2.6.0
  • 返回值:
    • 当key 不存在时,返回-2
    • 当key 存在但没有设置剩余生存时间时,返回-1
    • 否则,以毫秒为单位,返回key 的剩余生存时间
  • 注意 : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1

RANDOMKEY

  • 语法 : RANDOMKEY
  • 作用 : 从当前数据库中随机返回(不删除) 一个key
  • 可用版本: >= 1.0.0
  • 返回值:当数据库不为空时,返回一个key 。当数据库为空时,返回nil
1
2
3
4
5
6
localhost:6379> randomkey
address
localhost:6379> randomkey
name
localhost:6379> randomkey
address

RENAME

  • 语法 : RENAME key newkey
  • 作用 : 将key 改名为newkey 。当key 和newkey 相同,或者key 不存在时,返回一个错误。当newkey 已经存在时,RENAME 命令将覆盖旧值
  • 可用版本: >= 1.0.0
  • 返回值: 改名成功时提示OK ,失败时候返回一个错误
1
2
3
4
5
6
localhost:6379> keys *
name
localhost:6379> rename name username
OK
localhost:6379> keys *
username

TYPE

  • 语法 : TYPE key
  • 作用 : 返回key 所储存的值的类型。
  • 可用版本: >= 1.0.0
  • 返回值:
    • none (key 不存在)
    • string (字符串)
    • list (列表)
    • set (集合)
    • zset (有序集)
    • hash (哈希表)
1
2
3
4
localhost:6379> type username
string
localhost:6379> type age
string