在 Docker 镜像中使用 Redis
什么是Redis?
Redis 代表 (RE)mote (DI)ctionary (S)erver。它是一个缓存服务器。它是一个基于键值的内存缓存服务器。它是企业级的,可用于许多用例,例如数据库、消息代理、会话存储等。它非常适用于键值存储。支持字符串、列表、集合等大量数据类型。我们使用缓存服务器来提高应用程序性能。它支持大量内存管理技术,例如驱逐策略和密钥的生存时间 (TTL)。
有关更多详细信息,请参阅此处。
它在云中可用。云产品具有很强的可扩展性。它以以下变体的形式提供:
- 用于 Redis 的 Azure 缓存
- 用于 Redis 的 Amazon ElastiCache
- 在 GCP 中,用于 Redis 的内存存储
为什么在 Docker 镜像中使用 Redis?
Docker用于基于微服务的架构。这个Docker镜像可以一次性部署,其他微服务使用,我们可以将Redis的docker镜像和其他微服务一起使用。部署可以使用 Docker composer 或 Kubernetes 来完成。
在开发/测试应用程序时,docker image 可以通过一些命令启动并运行您的 redis 服务器。如果您希望在生产场景中使用它,您必须了解这里提到的安全部分。现在,让我们从下一节开始动手实践。
设置 Docker 镜像
在下面编写以下命令。这将从 docker hub 拉取 docker 镜像,并将 6379 可用的 docker 镜像中的 Redis 服务器暴露给端口号 1919 上的主机。我们正在创建的 docker 镜像的名称是“redis-local”。
通过 .NET 应用程序连接 Redis
现在,创建一个 .NET 应用程序并安装这个 nuget 包“StackExchange.Redis”。
下面显示的代码将创建连接并在 Redis 服务器中设置密钥。如果 Redis Image 能够与外部服务通信,此代码将用于验证连接。
ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost:1919");
var db = connection.GetDatabase();
db.StringSet("AKey", "AValue");
var keyVal = db.StringGet(“<KeyName>”);
|
获取钥匙
|
db.KeyExists(“<KeyName>”)
|
检查密钥是否存在
|
db.KeyExpire(“<KeyName>”,new TimeSpan(0,1,0));
|
将密钥的到期时间设置为 1 分 0 秒
|
db.KeyDelete(“<KeyName>”)
|
删除键
|
更多可用在这里。
验证服务器中的密钥
现在,切换回 cli 并运行以下命令。这将连接到已经以“redis-local”名称运行的 docker 镜像中的 bash shell。之后我们将执行命令“redis-cli”连接到redis服务器。然后,我们将执行“get <keyname>”命令来获取redis key 值。
输出将是“AValue”
截图供参考,
现在,我们已经验证了 Redis 的 Docker 镜像工作正常。这涵盖了本教程的范围。
其他常用命令,
set <KeyName> <KeyValue> |
用于在Redis Server中设置key
|
TTL <KeyName> |
用于获取特定键的生存时间
|
FLUSHALL |
清理Redis服务器数据
|
Ping |
检查服务器是否响应事件
|
DEL <KeyName> |
从Redis服务器删除密钥
|
此处提供了更多命令 。
总结
我们已经涵盖了以下内容,
- 在本地系统中设置 Redis Docker 镜像。
- 在.NET Application 中添加Redis Client 包并发送测试数据。
- 在 docker 镜像中验证 Redis 服务器中的测试数据。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!