返回介绍

8. Redis 数据库相关指令

发布于 2024-08-13 21:04:52 字数 7305 浏览 0 评论 0 收藏 0

8.1 数据库操作指令

# 1.Redis 中库说明
- 使用 redis 的默认配置器动 redis 服务后,默认会存在 16 个库,编号从 0-15
- 可以使用 select 库的编号 来选择一个 redis 的库

# 2.Redis 中操作库的指令
- 清空当前的库  FLUSHDB
- 清空全部的库  FLUSHALL

# 3.redis 客户端显示中文
-    ./redis-cli  -p 7000 --raw

8.2 操作 key 相关指令

# 1.DEL 指令
- 语法 :  DEL key [key ...] 
- 作用 :  删除给定的一个或多个 key 。不存在的 key 会被忽略。
- 可用版本: >= 1.0.0
- 返回值: 被删除 key 的数量。 

# 2.EXISTS 指令
- 语法:  EXISTS key
- 作用:  检查给定 key 是否存在。
- 可用版本: >= 1.0.0
- 返回值: 若 key 存在,返回 1 ,否则返回 0。

# 3.EXPIRE
- 语法:  EXPIRE key seconds
- 作用:  为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
- 可用版本: >= 1.0.0
- 时间复杂度: O(1)
- 返回值:设置成功返回 1 。

# 4.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 列表。

# 5.MOVE
- 语法 :  MOVE key db
- 作用 :  将当前数据库的 key 移动到给定的数据库 db 当中。
- 可用版本: >= 1.0.0
- 返回值: 移动成功返回 1 ,失败则返回 0 。

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

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

# 8.TTL
- 语法 :   TTL key
- 作用 :   以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
- 可用版本: >= 1.0.0
- 返回值:
    当 key 不存在时,返回-2 。
    当 key 存在但没有设置剩余生存时间时,返回-1 。
    否则,以秒为单位,返回 key 的剩余生存时间。
- Note : 在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回-1 。

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

# 10.RANDOMKEY
- 语法 :  RANDOMKEY
- 作用 :  从当前数据库中随机返回(不删除) 一个 key 。
- 可用版本: >= 1.0.0
- 返回值:当数据库不为空时,返回一个 key 。当数据库为空时,返回 nil 。

# 11.RENAME
- 语法 :  RENAME key newkey
- 作用 :  将 key 改名为 newkey 。当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。当 newkey 已经存在时,RENAME 命令将覆盖旧值。
- 可用版本: >= 1.0.0
- 返回值: 改名成功时提示 OK ,失败时候返回一个错误。

# 12.TYPE
- 语法 :  TYPE key
- 作用 :  返回 key 所储存的值的类型。
- 可用版本: >= 1.0.0
- 返回值:
    none (key 不存在)
    string (字符串)
    list (列表)
    set (集合)
    zset (有序集)
    hash (哈希表)

8.3 String 类型

1. 内存存储模型

image-20200623132104399

2. 常用操作命令

命令说明
set设置一个 key/value
get根据 key 获得对应的 value
mset一次设置多个 key value
mget一次获得多个 key 的 value
getset获得原始 key 的值,同时设置新值
strlen获得对应 key 存储 value 的长度
append为对应 key 的 value 追加内容
getrange 索引 0 开始截取 value 的内容
setex设置一个 key 存活的有效期(秒)
psetex设置一个 key 存活的有效期(毫秒)
setnx存在不做任何操作,不存在添加
msetnx 原子操作(只要有一个存在不做任何操作)可以同时设置多个 key,只有有一个存在都不保存
decr进行数值类型的-1 操作
decrby根据提供的数据进行减法操作
Incr进行数值类型的+1 操作
incrby根据提供的数据进行加法操作
Incrbyfloat根据提供的数据加入浮点数

8.4 List 类型

list 列表 相当于 java 中 list 集合 特点 元素有序 且 可以重复

1.内存存储模型

image-20200623161114380

2.常用操作指令

命令说明
lpush将某个值加入到一个 key 列表头部
lpushx同 lpush,但是必须要保证这个 key 存在
rpush将某个值加入到一个 key 列表末尾
rpushx同 rpush,但是必须要保证这个 key 存在
lpop返回和移除列表左边的第一个元素
rpop返回和移除列表右边的第一个元素
lrange获取某一个下标区间内的元素
llen获取列表元素个数
lset设置某一个指定索引的值(索引必须存在)
lindex获取某一个指定索引位置的元素
lrem删除重复元素
ltrim保留列表中特定区间内的元素
linsert在某一个元素之前,之后插入新元素

8.5 Set 类型

特点: Set 类型 Set 集合 元素无序 不可以重复

1.内存存储模型

image-20200623193634316

2.常用命令

命令说明
sadd为集合添加元素
smembers显示集合中所有元素 无序
scard返回集合中元素的个数
spop随机返回一个元素 并将元素在集合中删除
smove从一个集合中向另一个集合移动元素 必须是同一种类型
srem从集合中删除一个元素
sismember判断一个集合中是否含有这个元素
srandmember随机返回元素
sdiff去掉第一个集合中其它集合含有的相同元素
sinter求交集
sunion求和集

8.6 ZSet 类型

特点: 可排序的 set 集合 排序 不可重复

ZSET 官方 可排序 SET sortSet

1.内存模型

image-20200623194903967

2.常用命令

命令说明
zadd添加一个有序集合元素
zcard返回集合的元素个数
zrange 升序 zrevrange 降序返回一个范围内的元素
zrangebyscore按照分数查找一个范围内的元素
zrank返回排名
zrevrank倒序排名
zscore显示某一个元素的分数
zrem移除某一个元素
zincrby给某个特定元素加分

8.7 hash 类型

特点: value 是一个 map 结构 存在 key value key 无序的

1.内存模型

image-20200623200348408

2.常用命令

命令说明
hset设置一个 key/value 对
hget获得一个 key 对应的 value
hgetall获得所有的 key/value 对
hdel删除某一个 key/value 对
hexists判断一个 key 是否存在
hkeys获得所有的 key
hvals获得所有的 value
hmset设置多个 key/value
hmget获得多个 key 的 value
hsetnx设置一个不存在的 key 的值
hincrby为 value 进行加法运算
hincrbyfloat为 value 加入浮点值

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文