Redis数据库相关指令

发布时间:2024年01月20日

1 数据库操作指令

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

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

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

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

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

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

Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:官网也给出了命令解释

redis在存储数据的时候是以键值对存在的

key一般是String类型

不过value的类型多种多样,

redis的五种基本数据类型,指的就是value的类型

Commands | Redisicon-default.png?t=N7T8https://redis.io/commands

3 String类型

1. 内存存储模型

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

incrby age 10

setex key time value

4 List类型

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

1.内存存储模型

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

lpush 集合名 元素名

llen 集合名

lrange 集合名 开始索引 结束索引

lindex 集合名 索引

lrem 集合名 删除的个数 元素名

5 Set类型

特点: Set类型 Set集合 元素无序 不可以重复,好友,可能认识的人。

1.内存存储模型

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

sadd 集合名 元素名

smembers 集合名

scard 集合名

sinter 集合1 集合2

6 ZSet类型

特点: 可排序的set集合 排序 不可重复 ,因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能。底层的实现是一个跳表(SkipList)加 hash表。

ZSET 官方 可排序SET sortSet

1.内存模型

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

7 hash类型

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

1.内存模型

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加入浮点值

hset 集合名 key value hset key key value

hset 集合 key

文章来源:https://blog.csdn.net/weixin_67366360/article/details/135661304
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。