首页 > 数据库 >Linux中使用Docker安装Redis容器以及布隆过滤器

Linux中使用Docker安装Redis容器以及布隆过滤器

时间:2024-07-15 13:00:14浏览次数:19  
标签:容器 配置文件 Redis redis 布隆 Linux 过滤器 Docker docker

前言

在项目中,一般普遍都会用到Redis,在准备学习Redis的相关的东西时,其中提到了缓存穿透、缓存击穿、缓存雪崩的问题。其中对于缓存穿透的一个解决方案中就有提到布隆过滤器,而布隆过滤器的也有许多提供方式(Guava、Redisson、RedisBloom),前面都是基于本地的,所以就选择了Redis官方提供的布隆过滤器插件。

安装准备

在使用Docker创建Redis容器时,有一个官方的Redis版本,也有提供了布隆过滤器插件的版本,

但是创建Redis容器时,一般需要下载其配置文件然后需要修改里面的一些参数然后挂载给容器,但是我拉取带插件的容器时配置文件一直不生效(也有可能是我哪里步骤错了,但是普通镜像可以正常挂载),后面就去拉取官方普通镜像,然后手动安装布隆过滤器插件。

以下是整个详细流程:

1.下载配置文件

因为要使用用配置文件挂载启动,所以先在官网将对应的版本的配置文件下载下来。

2.修改配置文件

下载好配置文件后,其中有几个地方需要更改。

配置文件需要修改即注意事项:
1.注释掉bind 解除访问限制  但在生产环境中得进行设置,此处是供学习练习,所以注释该行。
#解除本地限制 注释bind 127.0.0.1 或者改为0.0.0.0 
bind 0.0.0.0

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


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

4.建议将timeout改为0 即不关闭
#当一个客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 0

5.
protected-mode no # 不开启保护模式,否则只能本地访问

6.设置redis的数据淘汰策略最常用的allkeys-lru,即删除最近使用最少的key
maxmemory-policy allkeys-lru

7.如使用布隆过滤器则需要在配置文件中加入
#查找loadmodule 找到指定位置
loadmodule /root/bloom/redisbloom-2.2.4/rebloom.so   (前面为自己的路径)

3.下载布隆过滤器插件

https://github.com/RedisBloom/RedisBloom

将下载好的压缩包保存,然后等会需要上传至Linux操作系统中。

安装

首先在虚拟机中创建好需要挂载的目录(目录自己随便创建即可)

mkdir -p /user/docker/redis/conf/
mkdir -p /user/docker/redis/data/

使用dokcer命令拉取指定版本的redis镜像这里以6.0版本为例

docker pull redis:6.0

将之前下载好的布隆过滤器解压包上传至redis的目录并解压

进入目录
cd /user/docker/redis
解压并安装
tar -zxf RedisBloom-2.2.6.tar.gz
cd RedisBloom-2.2.6/
make

遇到make命令无法识别就先下载

yum -y install make

make后我报了个127错误,经查询是由于系统内没有c的编译器,而Redis是基于C/C++的。

下载gcc

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake

下载后回到cd RedisBloom-2.2.6/目录中make成功

make成功后会生成一个redisbloom.so文件

将这个so的文件目路径写入redis.conf中

loadmodule /user/docker/redis/RedisBloom-2.2.6/redisbloom.so

将配置好的redis.conf文件上传至redis.conf目录

使用docker命令并以配置文件的方式挂载redis容器

docker run -p 6379:6379 --name redis -v /user/docker/redis/RedisBloom-2.2.6/redisbloom.so:/user/docker/redis/RedisBloom-2.2.6/redisbloom.so -v /user/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /user/docker/redis/data:/data -d redis:6.0 redis-server /etc/redis/redis.conf

标签:容器,配置文件,Redis,redis,布隆,Linux,过滤器,Docker,docker
From: https://blog.csdn.net/Tomkruse11/article/details/140431484

相关文章

  • Linux 性能优化:轻松入门
    文章目录前言一、磁盘性能优化1、磁盘RAID模式选择2、文件系统优化二、优化CPU1、性能监控:2、进程优先级调整:3、进程与CPU绑定:三、优化内存四、网络性能优化1、调整TCP缓冲区大小2、修改系统级别的文件描述符的数量3、调整TCP时间等待(TIME-WAIT)套接字的......
  • Linux多线程
    多线程1.线程概念1.1地址空间和页表的映射关系地址空间是进程能看到的拥有的资源的大小页表决定了进程实际拥有资源的大小和位置所以对进程地址空间和页表进行适当的资源划分,就可以对一个进程的所有资源进行分类进程地址空间如何与页表和物理内存产生映射的过程首先进......
  • Windows节点加入K8S集群(K8S搭建Linux和Window混合集群)
    说明:K8S多数情况用于linux系统的集群,目前很少人实践linux和windows的混合集群。linux和windows的K8S混合集群,是以linux为Master节点,Windows为Node节点的。本示例linux采用centos7.6,windows采用windowsserver2019(均为虚拟机)。一、前提准备  1.熟悉linux的基本使......
  • Linux命令
    说明本章应某位友友要求更新一版linux的学习资料Linux中命令通用的格式:command[-options][parameter]其中comman为命令本身,options(可选,非必填)为命令的一些选项,可以通过选项控制命令的行为细节,parameter(可选,非必填)命令的参数,多数用于命令的指向目标示例:1.ls-l/home/ithe......
  • Linux 中 sed命令在指定行前添加空行
     001、[root@PC1test]#lsa.txt[root@PC1test]#cata.txt33aa44aa88aa33aaffkk33aa8822mm8833442299[root@PC1test]#sed'2s/.*/\n&/'a.txt##在第二行前添加空行33aa44aa88aa33aaffkk33aa8822mm8833442299......
  • Tool-Docker-Ubuntu18.04
    Tool-Docker-Ubuntu18.04在Ubuntu18.04的操作系统上安装Docker,并实现镜像导入与容器运行。DockerHomeDockerDownload由于docker官网访问异常,借用阿里云开源镜像站下载安装包。DockerCE镜像docker-ce镜像下载页安装项:containerd.io_1.5.10-1_amd64.debdocker-ce......
  • DevOps系统四(Docker安装)
    一、Docker安装1.1下载docker依赖组件https://hub.daocloud.io/yuminstallyum-utilsdevice-mapper-persistent-datalvm2-y1.2设置下载Docker的镜像源为阿里云yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo1.3安......
  • day03-Docker
    Docker实用篇javajdkmysqlmaven…0.学习目标什么是镜像?了解镜像操作(重点)容器操作(重点)数据卷操作(重点)查看、进入、操作文件、挂载自定义镜像(重点)集群部署微服务镜像仓库(了解)1.初识Docker1.1.什么是Docker微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来......
  • 使用Docker部署mailcow开源邮件系统详细过程
    1.项目介绍项目网站:mailcow:dockerized–Blog根据官方介绍,这个项目名称是mailcow,名称都是小写的。下面内容是通过AI翻译自官方文档:mailcow:dockerizeddocumentationmailcow:dockerized是一个基于Docker的开源组件/电子邮件套件。mailcow依赖于许多广为人知且长期......
  • 【Linux】线程间同步
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录前言Linux线程同步条件变量同步概念与竞态条件条件变量函数条件变量使用规范条件变量接口的使用生产者消费者模型为何要使用生产者消费者模型生产者消费者模型优点基于BlockingQueue的生产者消费......