docker部署redis记录,楼主亲测无异常

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: docker部署redis记录,楼主亲测无异常


image.png

项目中使用redis很常见,所以安装redis是每个小伙伴都应该熟练的技能。

这里定义两个概念 ,请记住。

  1. 宿主:你正在操作的linux系统(或是云服务器或者是实体服务)
  2. 容器:也就是在docker中虚拟出来的linux

1.安装redis

1.拉取镜像

这里也可以加上版本号,如果不加,默认最新。

1. docker pull redis
2. 复制代码

2.查看本地镜像

查看本地镜像是否成功。

1. docker images
2. 复制代码

image.png

3.修改配置

在linux新建任意一文件夹,这里楼主新建了/usr/local/redis 。在官网或者其他redis工程中,获取redis.conf,并以下配置修改好的后放入上文新建的文件夹中。

1. #bind 0.0.0.0 #带bind的注释掉
2. protected-mode yes #开启密码 云服务上一定要开启密码,防火墙 不信你就试试!!!!!
3. daemonize no  #一定改为no 否则redis不能启动 而且没有日志!!!!!!!!!!
4. requirepass 123 #密码
5. 复制代码

4.新建数据文件夹

新建/usr/local/docker/data文件夹,放置容易映射过来的数据(对应着下文参数,可以修改,如果修改自己对应一下)

docker容器会与宿主机建立连接,然后将数据同步到宿主机中,这样就不用每次都进入docker容器操作文件了。

下图为安装后,宿主映射出来的文件数据。

image.png

5.运行容器

1. docker run -p 6379:6379 --name redis -v /usr/local/redis/redis.conf:/etc/redis/redis.conf  -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes 
2. 复制代码

命令中的文件夹路径是可以更改的,请按照个人环境自行修改。

6.命令解释

  • -p 6379:6379:第一个6379是宿主机的端口,第二个6379是reids容器的向外提供的端口。这个意思也就是宿主使用6379端口接收redis容器6379发出的请求。
  • --name redis :容器名称
  • -v /usr/local/redis/redis.conf:/etc/redis/redis.conf :将上文指定宿主/usr/local/redis/redis.conf文件映射到容器的/etc/redis/redis.conf
  • -v /usr/local/docker/data:/data :将容器的数据映射过来
  • -d redis redis-server /etc/redis/redis.conf :将容器下/etc/redis/redis.conf文件作为容器redis的配置启动项
  • --appendonly yes :标识开启持久化 这里只是演示可以通过这种方式设置参数

7.查询运行信息

1. docker ps
2. 复制代码

image.png

2.常见异常

1. changing ownership of '.': Permission denied或者chmod: changing permissions of'/var/lib/postgresql/data': Permission denied
2. 复制代码

以上错误时执行 -v /usr/local/redis/redis.conf:/etc/redis/redis.conf 出现的,因为docker容器没有宿主机的权限所以报错!

结论

关闭SELinux

1. getenforce #查看SELinux状态 permissive关闭状态 enforcing开启状态
2. setenforce 0 #临时关闭 
3. setenforce 1 #临时开启 
4. 
5. //永久关闭
6. 修改 /etc/selinux/config
7. SELINUX=enforcing改为SELINUX=disabled


相关实践学习
基于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
相关文章
|
5天前
|
存储 NoSQL Redis
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` 到非默认目录,以防止数据无法正确持久化。
|
2月前
|
NoSQL 关系型数据库 Redis
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
126 14
|
1月前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
122 7
|
2月前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
168 24
|
2月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
182 26
|
3月前
|
监控 NoSQL 网络协议
【Azure Redis】部署在AKS中的应用,连接Redis高频率出现timeout问题
查看Redis状态,没有任何异常,服务没有更新,Service Load, CPU, Memory, Connect等指标均正常。在排除Redis端问题后,转向了AKS中。 开始调查AKS的网络状态。最终发现每次Redis客户端出现超时问题时,几乎都对应了AKS NAT Gateway的更新事件,而Redis服务端没有任何异常。因此,超时问题很可能是由于NAT Gateway更新事件导致TCP连接被重置。
|
NoSQL Redis 网络协议
|
NoSQL Redis 网络协议
redis 异常解决办法
redis 异常解决办法 26069:M 08 Aug 17:06:58.858 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1165 0
|
9天前
|
缓存 NoSQL 中间件
Redis,分布式缓存演化之路
本文介绍了基于Redis的分布式缓存演化,探讨了分布式锁和缓存一致性问题及其解决方案。首先分析了本地缓存和分布式缓存的区别与优劣,接着深入讲解了分布式远程缓存带来的并发、缓存失效(穿透、雪崩、击穿)等问题及应对策略。文章还详细描述了如何使用Redis实现分布式锁,确保高并发场景下的数据一致性和系统稳定性。最后,通过双写模式和失效模式讨论了缓存一致性问题,并提出了多种解决方案,如引入Canal中间件等。希望这些内容能为读者在设计分布式缓存系统时提供有价值的参考。感谢您的阅读!
88 9
Redis,分布式缓存演化之路
|
2月前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
187 85