docker 安装Redis (全网最详细:附带配置文件)

这篇具有很好参考价值的文章主要介绍了docker 安装Redis (全网最详细:附带配置文件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 截止目前,Redis 的最新稳定版本是 6.2.6。这个版本在可读性、性能和稳定性方面进行了改进,并增加了一些新的命令和功能。

一、安装redis

1.1  拉去镜像
docker pull redis:6.2.6

执行过程 

1-拉去镜像
[root@iZuf6hxabqikytnrumsi4gZ logs]# docker pull redis:6.2.6

2- 查看拉去的镜像
[root@iZuf6hxabqikytnrumsi4gZ logs]# docker images -a 
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
redis        6.2.6     7614ae9453d1   23 months ago   113MB
mysql        5.7       c20987f18b13   23 months ago   448MB
 1.2 创建reids配置文件

      新建文件夹

1-新建文件夹
[root@syf/]# mkdir -p /data/dockerData/redis/conf
[root@syf/]# cd /data/dockerData/redis/conf
 
2-创建文件
[root@syf conf]# touch redis.config
[root@syf conf]# ls
my.config
 
3-编写文件内容  (进入后 i 子母键插入,黏贴下面配置,:wq! 保存并退出)
[root@syf conf]# vim my.config 

 本次使用的配置文件(注意看我注释):

# Redis服务器配置 

# 绑定IP地址
#解除本地限制 注释bind 127.0.0.1  
#bind 127.0.0.1  

# 服务器端口号  
port 6379 

#配置密码,不要可以删掉
requirepass syf133618
  
 
 
#这个配置不要会和docker -d 命令 冲突
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no

#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定(自定义)
#pidfile /data/dockerData/redis/run/redis6379.pid  

#默认为no,redis持久化,可以改为yes
appendonly yes


#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300

#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000

# 按需求调整 Redis 线程数
tcp-backlog 511



  


# 设置数据库数量,这里设置为16个数据库  
databases 16



# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb


# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128


# 是否记录系统日志,默认为yes  
syslog-enabled yes  

#指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice
  
# 日志输出文件,默认为stdout,也可以指定文件路径  
logfile stdout

# 日志文件
#logfile /var/log/redis/redis-server.log


# 系统内存调优参数   
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64




下面是关于配置文件详解,自己参考的使用:

daemonize no
默认情况下,redis不是在后台运行的。如果需要在后台运行,把该项的值更改为yes。

pidfile /var/run/redis.pid
当redis在后台运行的时候,redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他位置。当运行多个redis服务时,需要指定不同的pid文件和端口。

port 6379
指定redis运行的端口,默认是6379。

bind 127.0.0.1
指定redis只接收来自于该IP地址的请求看,如果不进行设置,那么将处理所有请求。在生产环境中最好设置该项。

loglevel debug
指定日志记录级别,其中redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose。
1 . debug表示记录很多信息,用于开发和测试
2.verbose表示记录有用的信息, 但不像debug会记录那么多
3.notice表示普通的verbose,常用于生产环境
4.warning 表示只有非常重要或者严重的信息会记录到日志

logfile /var/log/redis/redis.log
配置log文件地址,默认值为stdout。若后台模式会输出到/dev/null。

databases 16
可用数据库数,默认值为16,默认数据库为0,数据库范围在0~15之间切换,彼此隔离。

save
保存数据到磁盘,格式为save,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。相当于条件触发抓取快照,这个可以多个条件配合。
save 9001就表示900秒内至少有1个key被改变就保存数据到磁盘。

rdbcompression yes
存储至本地数据库时(持久化到rdb文件)是否压缩数据,默认为yes。

dbfilename dump.rdb
本地持久化数据库文件名,默认值为dump.rdb。

dir ./
工作目录,数据库镜像备份的文件放置的路径。这里的路径跟文件名要分开配置是因为redis在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,再把该临时文件替换为上面所指定的文件。 而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中,AOF文件也会存放在这个目录下面。 注意这里必须指定一个目录而不是文件。

slaveof
主从复制,设置该数据库为其他数据库的从数据库。设置当本机为slave服务时,设置master服务的IP地址及端口。 在redis启动时,它会自动从master进行数据同步。

masterauth
​当master服务设置了密码保护时(用requirepass制定的密码)slave服务连接master的密码。

slave-serve-stale-data yes
当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
如果slave-serve-stale-data设置为 yes(默认设置),从库会继续相应客户端的请求。
如果slave-serve-stale-data是指为no,除去INFO和SLAVOF命令之外的任何请求都会返回一个错误"SYNC with master in progress"。

repl-ping-slave-period 10
从库会按照一个时间间隔向主库发送PING,可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒。

repl-timeout 60
设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒,一定要确保repl-timeout大于repl-ping-slave-period。

requirepass foobared
设置客户端连接后进行任何其他指定前需要使用的密码。因为redis速度相当快,所以在一台比较好的服务器平台下, 一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常强大的密码来防止暴力破解。

rename​command CONFIG “”
命令重命名,在一个共享环境下可以重命名相对危险的命令,比如把CONFIG重名为一个不容易猜测的字符:
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
如果想删除一个命令,直接把它重命名为一个空字符""即可:rename-command CONFIG “”。

maxclients 128
设置同一时间最大客户端连接数,默认无限制。redis可以同时打开的客户端连接数为redis进程可以打开的最大文件描述符数。
如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,redis会关闭新的连接并向客户端返回max number of clients reached错误信息。

maxmemory
指定redis最大内存限制。redis在启动时会把数据加载到内存中,达到最大内存后,redis会先尝试清除已到期或即将到期的key,redis同时也会移除空的list对象。当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。
注意:redis新的vm机制,会把key存放内存,value会存放在swap区。

maxmemory-policy volatile-lru
当内存达到最大值的时候redis会选择删除哪些数据呢?有五种方式可供选择:
1.volatile-lru代表利用LRU算法移除设置过期时间的key(LRU:最近使用LeastRecentlyUsed)
2.allkeys-lru代表利用LRU算法移除任何key
3.volatile-random代表移除设置过过期时间的随机key
4.allkeys_random代表移除一个随机的key
5. volatile-ttl代表移除即将过期的key(minor TTL)
6. noeviction代表不移除任何key,只是返回一个写错误
注意:对于上面的策略,如果没有合适的key可以移除,写的时候redis会返回一个错误。

appendonly no
默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁。 如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失,所以redis提供了另外一种更加高效的数据库备份及灾难恢复方式。
开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly. aof文件中。当redis重新启动时,会从该文件恢复出之前的状态,但是这样会造成appendonly. aof文件过大,所以redis还支持BGREWRITEAOF指令对appendonly.aof。

appendfilename appendonly.aof
AOF文件名称,默认为"appendonly.aof"。

appendfsync everysec
redis支持三种同步AOF文件的策略:
1.no代表不进行同步,系统去操作
2.always代表每次有写操作都进行同步
3.everysec代表对写操作进行累积,每秒同步一次,默认是"everysec",按照速度和安全折中这是最好的

slowlog-log-slower-than 10000
记录超过特定执行时间的命令。执行时间不包括I/O计算,比如连接客户端,返回结果等。只是命令执行时间,可以通过两个参数设置slow log:一个是告诉Redis执行超过多少时间被记录的参数slowlog-log-slower-than(微妙),另一个是slow log 的长度。
当一个新命令被记录的时候最早的命令将被从队列中移除,下面的时间以微妙微单位,因此1000000代表一分钟。注意制定一个负数将关闭慢日志,而设置为0将强制每个命令都会记录。

hash-max-zipmap-entries 512 && hash-maxz-ipmap-value 64
当hash中包含超过指定元素个数并且最大的元素没有超过临界时,hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值。Redis Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现。这个Hash的成员比较少时redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,对应的value redisObject的encoding为zipmap。当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。

hash-max-zipmap-entries 512 512
list数据类型多少节点以下会采用去指针的紧凑存储格式。

list-max-ziplist-value 64
数据类型节点值大小小于多少字节会采用紧凑存储格式。

setmaxintsetentries 512
set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。

zsetmaxziplistentries 128
zsort数据类型多少节点以下会采用去指针的紧凑存储格式。

zsetmaxziplistvalue 64
zsort数据类型节点值大小小于多少字节会采用紧凑存储格式。

activerehashing yes
redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用。
当你的使用场景中,有非常严格的实时性需要,不能够接受redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存。

 三、运行容器,使用上面配置文件启动

docker run -p 6379:6379 --name redis6.2.6 -v /data/dockerData/redis/conf/redis.config:/etc/redis/redis.config -v /data/dockerData/redis/data:/var/lib/redis -v /data/dockerData/redis/logs:/logs -d redis:6.2.6 redis-server /etc/redis/redis.config

上面命令参数解释

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


-p:端口映射,此处映射 主机6379端口 到 容器的6379端口


-v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录

新建配置文件书卷:  -v /data/dockerData/redis/conf/redis.config:/etc/redis/redis.config

redis数据保存数据卷  -v /data/dockerData/redis/data:/var/lib/redis

reids日志文数据卷  -v /data/dockerData/redis/logs:/logs


-d : 表示使得容器后台一直运行
redis-server /etc/redis/redis.conf:指定配置文件启动redis-server进程
–appendonly yes:开启数据持久化
–requirepass 123456 :设置你的密码,设置密码比较安全
 

运行步骤:

1-查看镜像
[root@iZuf6hxabqikytnrumsi4gZ conf]# docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
redis        6.2.6     7614ae9453d1   23 months ago   113MB
mysql        5.7       c20987f18b13   23 months ago   448MB

2-查看容器
[root@iZuf6hxabqikytnrumsi4gZ conf]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
2a384f369e0b   mysql:5.7   "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql5.7

3-以配置文件方式启动redis
[root@iZuf6hxabqikytnrumsi4gZ conf]# docker run -p 6379:6379 --name redis6.2.6 -v /data/dockerData/redis/conf/redis.config:/etc/redis/redis.config -v /data/dockerData/redis/data:/var/lib/redis -v /data/dockerData/redis/logs:/logs -d redis:6.2.6  /etc/redis/redis.config


4-查看启动的容器
[root@iZuf6hxabqikytnrumsi4gZ conf]# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
a34aff536643   redis:6.2.6   "docker-entrypoint.s…"   59 seconds ago   Up 58 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              redis6.2.6
2a384f369e0b   mysql:5.7     "docker-entrypoint.s…"   2 hours ago      Up 2 hours      0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql5.7

 四、测试

1-进入redis容器
[root@iZuf6hxabqikytnrumsi4gZ logs]# docker exec -it a34aff536643 bash


2-连接redis
root@a34aff536643:/data# redis-cli
 
3-输入密码
127.0.0.1:6379> auth 1234
OK

最后一定要开放防火墙

  1. 输入指令:firewall-cmd --zone=public --add-port=6379/tcp --permanent,开放防火墙指定端口。
  2. 输入指令:firewall-cmd --reload,重新加载防火墙。

设置开机启动

开机启动
docker update --restart=always 容器ID
 
取消
docker update --restart=no 容器ID 文章来源地址https://www.toymoban.com/news/detail-811884.html

到了这里,关于docker 安装Redis (全网最详细:附带配置文件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为云云服务器评测|初始化配置SSH连接 & 安装MySQL的docker镜像 & 安装redis以及主从搭建 & 7.2版本redis.conf配置文件

    1.云耀云服务器L实例初始化配置,设置密码,ssh连接; 2.安装docker,安装运行mysql容器; 3.redis镜像的拉取,创建运行容器; 4.搭建redis主从,一主一从,7.2版本的redis.conf配置文件; 设置密码,官方要求复杂一点 进行远程登陆配置 添加开放的端口 在finalShell中新建SSH连接 系统

    2024年02月10日
    浏览(60)
  • (五)Docker 安装 redis镜像+启动redis容器(超详细)

    输入:su root命令,切换到root 拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本 使用以下命令来查看是否已安装了 mysql镜像 因为虚拟机中没有/mydata/redis/conf/redis.conf文件,所有要先创建 (1)先创建出目录结构 (2)然后创建config文件

    2024年02月11日
    浏览(44)
  • Docker安装/使用Redis(可用/详细)

    启动: 停止: 重启: 创建文件: 内容: 1.查看本地所有容器: 2.查看本地运行中的容器: 3.查看所有镜像: 方式1:–name(设置名称!!) 方式2:容器ID 1.名称连接: 2.容器ID连接: 3. 先进入容器、再手动连接redis客户端 1 交互模式进入redis容器 2 redis-cli 连接redis客户端

    2024年02月20日
    浏览(35)
  • 超详细Redis入门教程——Redis 的安装与配置

    本文小新为大家带来 超详细Redis入门教程——Redis 的安装与配置 相关知识,具体内容包括 Redis 的安装 , 连接前的配置 , Redis 客户端分类 (包括: 命令行客户端 , 图形界面客户端 , Java 代码客户端 ), Redis 配置文件详解 等进行详尽介绍~ 不积跬步,无以至千里;不积小

    2023年04月19日
    浏览(80)
  • 在 Docker 中部署 Redis 并挂载配置文件

    在 Docker 中部署 Redis 并挂载配置文件,可以使用以下步骤: 首先,在主机上创建一个目录,用于存放 Redis 的配置文件。例如,创建一个名为 redis 的目录,用于存放 Redis 的配置文件。 使用以下命令从 Docker Hub 上拉取 Redis 的最新镜像: 使用以下命令启动一个名为 redis 的 Red

    2024年02月11日
    浏览(62)
  • Docker配置jdk,mysql,redis,rabbitmq,nacos详细教程

    1.安装镜像 找到所要安装的镜像版本,复制命令 输入命令,下载openjdk8镜像 命令 作用 2.查看已安装的镜像 命令 作用 3.运行容器 命令解析 命令 作用 docker run 创建并启动一个容器 –name jdk8 将容器取名为jdk8 -d 设置后台运行 -it -i:以交互模式运行容器 -t:为容器重新分配一个

    2024年03月28日
    浏览(59)
  • docker 安装redis并设置密码,及nacos中配置redis参数。

    (123456 就是你设置的密码,,暴露端口号为6379 3.备注.为现有的redis 创建密码或修改密码:  进入redis的容器 docker exec -it 容器ID bash 进入redis目录 cd /usr/local/bin 运行命令:redis-cli 查看现有的redis 密码:config get requirepass 设置redis密码config set requirepass ***(***为你要设置的密码

    2024年02月14日
    浏览(38)
  • 【Redis】windows上安装的Redis,并在springboot中配置并且连接详细(排坑)

    比如在开发测试阶段,为了方便就直接使用自己windows装好redis进行简单测试了,在项目中不去单独配置yam的redis属性可以正常操作,但是在springboot的yam中配置redis连接属性时候却连不上,特意记录一下方便后续再遇到能快速解决 一般情况下,打开Redis安装目录中的 redis.window

    2024年01月16日
    浏览(62)
  • 使用docker/docker-compose通过自定义的redis.conf文件启动redis 7.2.3,附上docker-compose.yml的redis配置

    目录 一.复制以及使用自定义的redis.conf文件 1.在官网拷贝对应版本的配置文件内容新建redis.conf文件进行粘贴。(推荐) 2.也可以去官网下载对应版本的redis的tar.gz包,解压后在根目录下找到redis.conf文件复制也可也可。 二.配置redis.conf文件(这里有个小坑) 1.注释掉bind 127.0.0.1

    2024年02月03日
    浏览(59)
  • (全网最详细!)mysql、redis 、RabbitMQ只能本机访问,怎么改?

    如果只能本机访问,怎么改?   然后重启一下mysql服务 任务管理器-关掉mysql 搜索 计算机管理-重启mysql服务   然后 打开查询,并选择mysql数据,输入这个sql语句,点击运行 找出来这个之后,把host 改为 %   *如果 你执行sql语句的时候,显示  你可以直接点开mysql里的user表,然

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包