【通过docker部署redis7.0】

文章目录


前言

Redis是一种开源的内存数据结构存储系统,它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。它可以用作数据库、缓存和消息中间件,并在性能、可扩展性和灵活性方面表现出色。


提示:以下是本篇文章正文内容

一、介绍Redis

Redis是一个完全开源免费的高性能(NOSQL)的key-value数据库。它遵守BSD协议,使用ANSI C语言编写,并支持网络和持久化。Redis拥有极高的性能,每秒可以进行11万次的读取操作和8.1万次的写入操作。它支持丰富的数据类型,包括String、Hash、List、Set和Ordered Set,并且所有的操作都是原子性的。此外,Redis还提供了多种特性,如发布/订阅、通知、key过期等。Redis采用自己实现的分离器来实现高速的读写操作,效率非常高。Redis是一个简单、高效、分布式、基于内存的缓存工具,通过网络连接提供Key-Value式的缓存服务。

Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。

Redis 有以下这五种基本类型:

String(字符串)

Hash(哈希)

List(列表)

Set(集合)

zset(有序集合)

Redis 有以下三种特殊的数据结构类型:

Geospatial

Hyperloglog

Bitmap

二、部署docker

可以参考我之前部署docker教程

三、部署redis

3.1 创建文件存储

代码如下(示例):

c 复制代码
mkdir -p /home/app/redis/data
touch /home/app/redis/redis.conf

3.2 创建容器

代码如下(示例):

c 复制代码
docker run --restart=always \
-p 6379:6379 \
--name redis \
-v /home/redis/redis.conf:/etc/redis/redis.conf \
-v /home/redis/data:/data \
--log-opt max-size=100m --log-opt max-file=3 \
-d redis:7.0.12 redis-server /etc/redis/redis.conf

-restart=always 设置容器总是开机启动;
-p 6379:6379 将6379端口挂载出去
--name 给这个容器取一个名字
-v 数据卷挂载 /home/dj/redis/redis.conf:/etc/redis/redis.conf此处是将宿主机 /home/dj/redis/redis.conf 文件映射到 redis 容器下的 /etc/redis/redis.conf,此处你也可以理解为docker容器和宿主机共享这个文件。
-d redis:7.0.12 后台运行容器,不加-d就是直接在控制台输出,关闭窗口即停止容器。
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的 redis.conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是宿主机下共享文件。
--log-opt max-size=100m --log-opt max-file=3max-size指定日志文件大小上限max-file:指定日志文件个数

3.3 测试连接

若使用外部连接,需要开放防火墙端口策略,或者云服务器的话配置安全组策略

代码如下(示例):

c 复制代码
#进入容器
docker exec -it myredis bash
redis-cli
set k1 v1 
get k1
#若上面命令报错,执行这个命令后再重复
auth ningzaichun 

相关推荐
洛神灬殇11 分钟前
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
数据库·redis·后端
GD_MI12 分钟前
第七周作业
数据库
晨埃LUO定14 分钟前
【k8s系列1】一主两从结构的环境准备
云原生·容器·kubernetes
稳联技术29 分钟前
智能交响:EtherCAT转Profinet网关开启汽车自动化通信新纪元
运维·服务器·网络
Linux运维技术栈39 分钟前
深入理解 CICD 与 Jenkins 流水线:从原理到实践
运维·ci/cd·jenkins·脚本·流水线
辰哥单片机设计1 小时前
非接触式水位传感器详解(STM32)
数据库·mongodb
郭源潮11 小时前
《MySQL下载安装:Linux下载MySQL 5.7版本》
linux·运维·mysql
MoFe11 小时前
【.net core】【watercloud】数据库连接报错问题
数据库·.netcore
NLP的小Y1 小时前
Docker用model.config部署及更新多个模型
运维·docker·容器
小李学不完1 小时前
Oracle--SQL基本语法
数据库·sql·oracle