在 Docker 镜像中使用 Redis

作者 : 慕源网 本文共1628个字,预计阅读时间需要5分钟 发布时间: 2021-11-24 共163人阅读

什么是Redis?

Redis 代表 (RE)mote (DI)ctionary (S)erver。它是一个缓存服务器。它是一个基于键值的内存缓存服务器。它是企业级的,可用于许多用例,例如数据库、消息代理、会话存储等。它非常适用于键值存储。支持字符串、列表、集合等大量数据类型。我们使用缓存服务器来提高应用程序性能。它支持大量内存管理技术,例如驱逐策略和密钥的生存时间 (TTL)。

有关更多详细信息,请参阅此处

它在云中可用。云产品具有很强的可扩展性。它以以下变体的形式提供:

  1. 用于 Redis 的 Azure 缓存
  2. 用于 Redis 的 Amazon ElastiCache
  3. 在 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”。

docker pull redis 
docker run –name redis-local -dp 1919:6379 redis

通过 .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 值。

docker exec -it redis-local /bin/bash 
redis-cli
获取密钥

输出将是“AValue”

截图供参考,

现在,我们已经验证了 Redis 的 Docker 镜像工作正常。这涵盖了本教程的范围。

在 Docker 镜像中使用 Redis

其他常用命令,

set <KeyName> <KeyValue>
用于在Redis Server中设置key
TTL <KeyName>
用于获取特定键的生存时间
FLUSHALL
清理Redis服务器数据
Ping
检查服务器是否响应事件
DEL <KeyName>
从Redis服务器删除密钥

此处提供了更多命令 。

总结

我们已经涵盖了以下内容,

  1. 在本地系统中设置 Redis Docker 镜像。
  2.  在.NET Application 中添加Redis Client 包并发送测试数据。
  3. 在 docker 镜像中验证 Redis 服务器中的测试数据。

慕源网 » 在 Docker 镜像中使用 Redis

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录