Docker中启用reids 1

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Docker中启用reids

步骤:


提示:以下是本篇文章正文内容,下面案例可供参考

1、在本地某个位置创建以下内容

# 以/docker/redis为例
mkdir -p /docker/redis
mkdir -p /docker/redis/data
touch /docker/redis/redis.conf
touch /docker/redis/redis.bash

2、编辑配置文件vim /docker/redis/redis.conf

# Redis配置文件
# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no
# 指定Redis监听端口,默认端口为6379
port 6379
# 绑定的主机地址,不要绑定容器的本地127.0.0.1地址,因为这样就无法在容器外部访问
bind 0.0.0.0
#需要密码则打开
requirepass 0122
# 持久化
appendonly yes

3、编辑/docker/redis/redis.bash

docker run -p 6379:6379 --name redis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf 

解释以上命令

docker run redis # 从redis镜像运行容器
-p 6379:6379 # 映射本地6379端口到容器6379端口,前为本地端口
--name redis # 设置容器名称为redis,方便以后使用docker ps进行管理
-v /docker/redis/redis.conf:/etc/redis/redis.conf # 关联本地/docker/redis/redis.conf文件到容器中/etc/redis/redis.conf,同样,前为本地
-v /docker/redis/data:/data # 关联本地/docker/redis/data到容器内/data目录,此为存放redis数据的目录,为方便以后升级redis,而数据可以留存
-d # 后台启动,使用此方式启动,则redis.conf中daemonize必须设置为no,否则会无法启动
redis-server /etc/redis/redis.conf # 在容器内启动redis-server的命令,主要是为了加载配置

4、给予执行权限

记得把 密码 改为自己想要设置的密码

sudo chmod 777 /docker/redis/redis.bash

参数说明:


–restart=always: 当Docker 重启时,容器会自动启动。

–privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

-v /mydata/mysql/log:/var/log/mysql 映射日志文件

-v /opt/mysql/data/:/var/lib/mysql 映射数据目录

-v /mydata/mysql/my.cnf:/etc/mysql/my.cnf 映射配置文件

-v /mydata/mysql/conf.d:/etc/mysql/conf.d 映射配置文件

-e MYSQL_ROOT_PASSWORD=123456 映射mysql root用户密码

-d mysql 以后台方式启动

这里可能会报错,需要加入一些配置,把之前创建失败的容器删除,同时把相关目录删除

  • 创建目录
mkdir -p /mydata/mysql
touch /mydata/mysql/my.cnf
  • 在my.cnf中添加以下内容
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
  • 重新执行创建容器的命令就可以了

5、启动

# 查看是否已启动
docker ps
# 如果无法启动或者docker ps中无对应内容,将bash中命令复制出来,删除-d参数启动,查看报错信息
# 使用redis-cli或者rdm访问 localhost:6379
# 如需访问容器,可使用
docker exec -it redis bash
redis-cli

注意:

#出现以下错误则是没有输入密码导致
127.0.0.1:6379> set name "hello"  
(error) NOAUTH Authentication required.
#运行以下命令即可
127.0.0.1:6379> auth 0122

b7f92c3ad0a6467d8997cefcda0f8fed.png

6. 测试

在controller中找一个get风格的方法,添加如下代码

//连接本地的redis
Jedis jedis = new Jedis("192.168.125.131",6379);
//如果有密码则需要下面这一行
jedis.auth("0122");
//查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误
System.out.println(jedis.ping());
/*****************String示例*****************/
//设置字符串数据
jedis.set("word","helloWorld");
//读取字符串数据
System.out.println(jedis.get("word"));
//删除数据
jedis.del("word");
/*****************List示例*****************/
jedis.lpush("list","google");
jedis.lpush("list","aLi");
jedis.rpush("list","Mi");
List<String> stringList = jedis.lrange("list",0l,-1l);
for(String str:stringList){
    System.out.println(str);
}
/*****************Hash示例*****************/
HashMap<String,String> map = new HashMap<>();
map.put("name","tom");
map.put("age","81");
jedis.hmset("man",map);
System.out.println(jedis.hmget("man","name"));
System.out.println(jedis.hgetAll("man"));
System.out.println("获取所有字段:"+jedis.hkeys("man"));
System.out.println("获取字段数量:"+jedis.hlen("man"));
System.out.println("判断age字段是否存在:"+jedis.hexists("man","age"));
jedis.sadd("set1","1");
jedis.sadd("set1","2");
jedis.sadd("set1","1");
jedis.sadd("set2","1");
jedis.sadd("set2","4");
System.out.println("获取集合的成员数"+jedis.scard("set1"));
System.out.println("获取集合中的成员"+jedis.smembers("set2"));
System.out.println("判断集合是否包含指定成员"+jedis.sismember("set1","2"));
System.out.println("获取多个集合的交集"+jedis.sinter("set1","set2"));
System.out.println("获取多个集合并集"+jedis.sunion("set1","set2"));
System.out.println("返回第一个集合与其他集合之间的差异"+jedis.sdiff("set1","set2"));

出现以下类容说明成功!

也可以使用工具来进行测试,这里使用:RedisDesktopManager

输入linux的ip地址和设置的端口号6379以及自定义的密码后得到如下结果

到此。部署成功!

总结

提示:docker启用redis步骤大致如上文所示

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
NoSQL 关系型数据库 MySQL
Docker中启用reids 2
Docker中启用reids 2
|
28天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
196 77
|
9天前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
78 35
|
1月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
8天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
14天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
40 4
|
29天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
95 3
|
2月前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
68 12
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
111 7
|
1月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
44 5

热门文章

最新文章