Redis 是一个 NOSQL 数据库,数据以键值对的形式存储。
Redis 将数据存储在主内存上,这意味着它速度快,但易失性,不像 PostgreSQL 等数据库系统将数据存储在磁盘上。
在具有服务器和数据库的应用程序中,访问数据库上的信息会导致延迟。
像redis这样的Key-Value数据库通常保存在这些数据库前面,访问操作需要2步:
通过这两个步骤,并且考虑到主内存的延迟低于磁盘,我们可以说 Redis 可用于存储和访问频繁的、最近的数据和昂贵的操作,从而使应用程序速度提高 10 到 50 倍。
因此,事实是,如果您要构建一个未来可扩展的应用程序,Redis(或类似于 Redis 的数据库)是必不可少的。
Redis 开源吗?:是的,Redis 是开源的,具有特殊类型的许可证,但也有其他替代方案,例如 Snapchat 的 KeyDB 和 Memcached 都是开源的。 KeyDB 是 Redis 的一个分支,但目前只能在 Linux 上运行。
Redis支持Windows吗?:不,Redis不支持Windows,但是你可以安装WSL/Ubuntu并使用
安装redis
sudo apt install redis
redis-server --port 6000
其中 6000 是您要运行它的本地服务器上的端口。 (即 127.0.0.1:6000)。
大多数问题是由于 redis-server 使用的默认端口已被使用
在Linux上,安装redis就像
sudo apt install redisMac 上的
或 :
brew install redis
您需要 上有 2 个终端实例
在第一个运行您的服务器的服务器上
redis-server -port
然后在第二个上运行您的客户端
redis-cli
构建Web应用程序时,不需要运行客户端但需要运行服务器
Redis 概念
redis中有3个你应该了解的主要概念或4
所有其他数据结构主要是第一个的高级实现
通过列表,我的意思是数组而不是链表,这就是redis的称呼。
键值对是大多数编程语言中常见的数据结构。
在Python中称为字典或简称dict
在Javascript中称为Maps
在 C# 中称为 Dictionaries
Redis中键值对的操作主要有6种
运营 | 说明 | 示例 | 进一步说明 |
---|---|---|---|
放 | 创建键值对 | 设置姓名约翰 | 设置键映射到值 |
得到 | 获取键的值 | 获取名称 | 这将返回约翰 |
删除 | 删除键值对 | 删除名称 | 这将从数据库中删除键值对名称 |
存在 | 检查redis数据库中是否存在某个key | 存在名称 | 返回 1 或 0 对应 True 或 False |
冲洗厅 | 清除整个缓存 | 冲洗厅 | 或多或少类似于 postgres 中的 DROP TABLE |
按键 * | 返回数据库中的所有键 | 按键 * |
还有基于时间的操作。在基于时间的操作中,密钥仅在缓存中保存一段设定的时间,时间到期后,缓存会删除该密钥。
有 2 个主要的基于时间的操作
运营 | 说明 | 示例 | 进一步说明 |
---|---|---|---|
到期 | 定义键后使其过期 | 使姓名 10 过期 | 10秒后删除键值名称。该键必须在调用 EXPIRE 之前使用 SET 定义。常见的替代方案是; |
SETEX | 定义后使键过期 | SETEX 年龄 30 15 | 将键年龄设置为值30,并在15秒后删除键值对 |
TTL | 生存时间 | TTL年龄 | 返回删除年龄键之前剩余的时间 |
博客已经太长了,我会讨论lists、sets、hashmaps以及关于redis可能的面试问题 在另一个博客中。
如果您有任何疑问,请在下面评论,我会尽力回答⭐。快乐编码
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3