【2023】使用docker方式部署redis

简介: 【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命令创建客户端

目录
相关文章
|
8月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
3804 4
|
8月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
394 5
|
8月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
2644 8
|
8月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
877 6
|
8月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
7664 8
|
8月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1144 4
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
8月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
848 25