Redis介绍
Redis(全称为REmote Dictionary Server)是一个开源的、内存中的数据存储结构,主要用作应用程序缓存或快速相应数据库。
REmote Dictionary Server:
有道翻译Redis是“远程字典服务”,远程不过是远程访问,而字典二字就是Redis的特点,他的数据存储的特点是根据键和值存储的, 一个键就类似于MySQL中的一个表,每个键对应的值有不同的类型。键不能重复。
先展示一下Redis的可视化工具RDM(Redis Desktop Manager)的界面所作的显示,你或许会清楚一些:
图中显示是db0数据库下的h1键中存储的数据,数据类型是hash,hash类型就是一个键(key)对应一个值(value)。# 代表自动生成的序号。
再看另外一个类型 list:
list类型就是一个列表,只有值。很简单吧。下面还会介绍其他数据类型。
细心的人可能会发现我的数据库有13个,那是Redis自动创建的,是不是比MongoDB还要方便,你根本不需要去创建!
Redis安装
redis安装很简单, 但是你如果直接去官网去找安装包是找不到的,因为它本是不支持Windows的,但是你如果去网上找的话,是可以找到可以装在windos的安装包的,我这里直接给你提供链接吧,里面还有RDM:提取码:mop9https://pan.baidu.com/s/11VY9tXR0q9OTscpoybeo3A?pwd=mop9
安装很简单,但我还是会给你提供一个链接:Redis 安装 | 菜鸟教程
里面也有相应的安装包。
安装完成后,你的redis的服务会自动打开,打开终端,键入redis-cli 你就你能直接进行操作了:
但是你想看一下Redis的标志性图案的话,要去关闭你的redis服务,并在终端中开启,开启操作如下:
指令:redis-server "D:\Program Files\Redis\redis.windows.conf"(可能只在我的电脑上适用)
这条指令的意思就是运行redis-server.exe文件,外加一个redis.windows.conf配置文件,去你的Redis的安装路径就可以找到。
上图的界面开启服务后就不能操作其它了,想要操作再去开一个框框进行连接。
Redis常用终端操作
-
启动 Redis:
redis-server [--port 6379]
:启动 Redis 服务器,默认端口号是 6379。redis-server [xx/xx/redis.conf]
:通过配置文件启动 Redis。
-
连接 Redis:
./redis-cli [-h 127.0.0.1 -p 6379]
:连接到 Redis 服务器。
-
停止 Redis:
redis-cli shutdown
或kill redis-pid
:停止 Redis 服务器。
-
测试连通性:
ping
:检查 Redis 是否可用。
-
键操作命令:
keys *
:获取所有键。dbsize
:获取键总数。exists key [key ...]
:查询键是否存在。del key [key ...]
:删除键。type key
:查询键类型。move key db
:移动键到指定数据库。ttl key
:查询键的生命周期。expire key seconds
:设置过期时间。
-
字符串操作命令:
set key value
:存放键值。get key
:获取键值。incr key
:递增键值。append key value
:追加内容。getrange key start end
:获取部分字符。
-
集合操作命令:
sadd key member [member ...]
:存储集合值。smembers key
:获取所有集合元素。sismember key member
:判断集合是否存在元素。scard key
:获取集合元素个数。srem key member [member ...]
:删除集合元素。
这些指令涵盖了 Redis 的基本操作,你可以根据具体需求使用它们。
Redis的数据类型
string
string就是字符串类型,存储字符串。
看到图了吗,里面什么都可以存储,就算你放一本三体进去,我想也是,没有问题的。
用一个TTL的值为-1,他代表永久存储。
list
list就是列表,一列是序号,一列(value)是你插入的值。
set
set就是集合, 它和列表的差别就是无序、不重复。
zset
zset是有序集合,相较set就是根据分数(score)的大小变得有序了 。
hash
哈希,一个键对应一个值,值不能重复。
stream
这个stream老师还没讲,如果讲了我再来更新。但我估计这个不常用。下面是ai的回答:
Redis Stream 是 Redis 5.0 引入的一种新的数据类型,用于处理消息流(Message Stream)。它提供了一种轻量级、可扩展的消息发布与订阅模型,适用于实时消息传递和事件处理。下面介绍一些 Redis Stream 的关键概念和常用操作:
-
添加消息到 Stream:
- 使用
XADD
命令向指定的 Stream 中添加消息。 - 语法格式为:
XADD key ID field value [field value ...]
。 key
用来指定 Stream 的名字。ID
用来指定消息的 ID 值,最常用的是*
,表示由 Redis 自动生成 ID。- 添加的消息为 key-value 类型,可以一次添加多个消息。
- 使用
-
读取消息:
- 使用
XREAD
命令从一个或多个 Stream 中读取消息。 - 语法格式为:
XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] id [id ...]
。 COUNT
用来获取消息的数量。BLOCK
用来设置阻塞模式和阻塞超时时间,默认为非阻塞。id [id ...]
用来设置读取的起始 ID。- 阻塞模式中可以使用
$
来获取最新的消息 ID。
- 使用
-
获取 Stream 长度:
- 使用
XLEN
命令返回 Stream 中消息的数量。
- 使用
-
获取消息范围:
- 使用
XRANGE
命令返回两个指定 ID 之间的消息范围。
- 使用
操作
操作就直接写在python中的操作了,终端的操作想了解自己你可以去了解一下。
python中的操作也比较简单,但是Redis中的每种数据类型的操作都很多,就像python中一样。
下面仅介绍对list的操作,因为很多,而且大都相似,所以列举完没有必要
-
lpush
:将一个或多个值插入到列表的头部。如果列表不存在,会创建一个空列表并执行LPUSH
操作。示例代码如下:import redis r = redis.Redis(host="123.156.74.190", port=6379, password="66666666666") # 添加元素到列表头部 r.lpush("my_list", 1) # 结果是1 r.lpush("my_list", 2, 3, 4) # 结果是4
-
rpush
:将一个或多个值插入到列表的尾部(最右边)。如果列表不存在,会创建一个空列表并执行RPUSH
操作。示例代码如下:# 添加元素到列表尾部 r.rpush("my_list", 1) # 结果是1 r.rpush("my_list", 2, 3) # 结果是3
-
blpop
:移出并获取列表的第一个元素。如果列表为空,会阻塞直到等待超时或发现可弹出元素为止。示例代码如下:# 弹出列表的第一个元素 result = r.blpop("my_list") print(result) # 结果是('my_list', '1')
-
brpop
:移出并获取列表的最后一个元素。如果列表为空,会阻塞直到等待超时或发现可弹出元素为止。示例代码如下:# 弹出列表的最后一个元素 result = r.brpop("my_list") print(result) # 结果是('my_list', '3')
-
lindex
:通过索引获取列表中的元素。可以使用负数下标,例如-1
表示列表的最后一个元素。示例代码如下:# 获取列表指定索引位置的元素 value = r.lindex("my_list", 1) print(value) # 结果是2
-
llen
:返回列表的长度。示例代码如下:# 获取列表的长度 length = r.llen("my_list") print(length) # 结果是3
总之,这些命令可以帮助我们在 Python 中有效地操作 Redis 中的列表数据。如果您想了解更多关于 Redis 列表的操作,可以查看官方文档或其他相关教程。
ok,本篇文章到此为止,感谢阅览🌹🌹🌹