【2023】使用docker方式部署redis

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 【2023】使用docker方式部署redis

* 使用Docker方式安装Redis

提前部署docker环境,这一点不多说,请参考docker安装文章,本文安装Redis版本为6.0

* Redis是什么?

Redis是一种内存数据结构存储系统,也被称为远程字典服务器,是一款开源的高性能键值对存储数据库。

它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,可以满足各种应用的需求。

Redis支持多种扩展方式,可以通过主从复制、哨兵、集群等方式来实现高可用和高性能。

Redis的特点包括高性能、数据持久化、支持事务、发布/订阅、Lua脚本等。

因此,Redis被广泛应用于缓存、消息队列、计数器、排行榜、实时消息等场景。

* 为什么要用Redis

Redis是一种高性能的键值对存储系统,因此可以用于处理许多用例,包括:

  1. 缓存:Redis可以将经常使用的数据缓存在内存中,以提高访问速度,从而加快应用程序的响应时间。
  2. 会话管理:Redis可以存储会话数据,这样在负载均衡器后的多个服务器之间共享会话数据就更加容易了。
  3. 计数器:由于Redis的高性能和原子性操作,在处理计数器等应用时,Redis是非常有用的。
  4. 队列:Redis可以被用来实现消息队列系统,以便于在应用程序的不同部分之间传递消息。
  5. 排行榜:Redis可以用于排序,例如计算一个用户在社交网络上的排名。

总之,Redis可以被用于任何需要高性能、可扩展性和灵活性的应用程序。

1.下载要使用的Redis镜像

可以使用docker pull redis命令获取镜像,默认为最新版。也可以使用docker pull redis:标签下载指定版本镜像。

可以在docker镜像仓库获取redis镜像

docker pull redis:6.0

2.使用docker启动Redis容器

docker run -itd --name redis-01 -p 6379:6379 redis:6.0
  • it表示在终端交互式操作
  • d表示在后台运行
  • –name指定容器名称
  • -p表示容器端口映射到宿主机端口

通过docker ps命令可以查看启动的容器

# docker ps
CONTAINER ID   IMAGE       COMMAND                   CREATED         STATUS         PORTS                                       NAMES
ea3ca1926781   redis:6.0   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   redis-01

通过docker logs观察启动情况

# docker logs redis-01
1:C 03 May 2023 01:29:00.767 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 03 May 2023 01:29:00.767 # Redis version=6.0.16, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 03 May 2023 01:29:00.767 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 6.0.16 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 1
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               
1:M 03 May 2023 01:29:00.768 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 03 May 2023 01:29:00.768 # Server initialized
1:M 03 May 2023 01:29:00.769 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo madvise > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled (set to 'madvise' or 'never').
1:M 03 May 2023 01:29:00.769 * Ready to accept connections

如果出现上述日志代表redis启动成功,如果失败则查看具体原因

3.通过exec进入Redis容器

启动容器后,可以使用docker exec命令进入到容器内部,执行相关操作

docker exec -it redis-01 /bin/bash
  • exec表示在运行的容器中执行命令
  • it表示以终端交互的方式执行命令
  • /bin/bash表示需要指定的命令
  • 运行结果如下所示:
[root@localhost ~]# docker exec -it redis-01 /bin/bash
root@ea3ca1926781:/data# 

进入容器后可通过redis-cli命令连接容器内的redis服务器,可通过set创建变量,get获取变量的值

root@ea3ca1926781:/data# redis-cli
127.0.0.1:6379> set val 1
OK
127.0.0.1:6379> get val
"1"
127.0.0.1:6379> 

可使用exit命令退出redis服务器

127.0.0.1:6379> exit
root@ea3ca1926781:/data# 

如果要退出容器则再输入一次exit命令即可。

可通过redis-cli --versionredis-server --version命令查看redis客户端和服务端版本

root@ea3ca1926781:/data# redis-cli --version
redis-cli 6.0.16
root@ea3ca1926781:/data# redis-server --version
Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=281f24c34ac9a20

4.控制Redis服务器

可通过docker [start|stop|restart] redis-01控制redis服务器状态

5.Redis服务端和客户端

Redis是基于键值对存储的NoSQL数据库,其中的数据是存储在Redis服务器里的。

一个Redis服务器可同时与多个客户端创建连接,每个客户端都能像服务器发送命令请求,而服务器在收到命令请求后能向客户端返回结果。

可通过redis-cli命令创建客户端

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
32
分享
相关文章
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
269 91
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
8天前
|
在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署
通过以上步骤,您可以成功在Docker上部署Ollama和AnythingLLM,实现本地LLM Agent的功能。在部署过程中,确保环境和配置正确,以避免不必要的问题。希望本文能够帮助您顺利完成部署,并在本地环境中高效地使用LLM模型。
277 8
Docker——阿里云服务器利用docker搭建redis集群
本文详细记录了使用Docker搭建Redis集群的过程,包括检查Docker和Docker Compose的安装、创建Redis配置文件、编写`docker-compose.yml`文件、启动Redis节点、创建Redis集群的具体步骤,以及最终的验证方法。文章还提供了在多服务器环境下搭建Redis集群的注意事项,帮助读者全面了解 Redis 集群的部署流程。
74 12
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
Stirling-PDF 是一款基于 Docker 的本地化 PDF 编辑工具,支持 50 多种 PDF 操作,包括合并、拆分、转换、压缩等,同时提供多语言支持和企业级功能,满足个人和企业用户的多样化需求。
106 6
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
61 19
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
81 1
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
Redis--缓存击穿、缓存穿透、缓存雪崩
缓存击穿、缓存穿透和缓存雪崩是Redis使用过程中可能遇到的常见问题。理解这些问题的成因并采取相应的解决措施,可以有效提升系统的稳定性和性能。在实际应用中,应根据具体场景,选择合适的解决方案,并持续监控和优化缓存策略,以应对不断变化的业务需求。
61 29
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等