5分钟教你docker安装启动redis全教程(全新方式)


Posted in Redis onMay 29, 2021

什么是redis

    根据百度百科介绍,Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、是一个高性能(NOSQL)Key-Value数据库,并提供多种语言的API,redis也是完全开源免费的,遵守BSD协议。

什么又是NOSQL

    NOSQL,泛指非关系型的数据库,提到非关系型的数据库,我们就来简单讲讲关系型数据库,关系型数据库,大家都知道的oracle,mysql,postgre等都是关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库,表与表之间使用主外键,建立关联关系,1对1,1对多,多对多等,用户通过SQL查询来检索数据库中的数据,而NOSQL,即Not Only SQL它是关系型数据库的一种良好补充。

为什么我们要使用redis

    大家都知道,关系型数据库的数据都是存储在硬盘中,例如微博这样的网站,每秒上万次的访问需求,甚至十几万次的访问需求,对硬盘io的读写要求是极高的,普通的数据库是难以应付的,在这样超大规模和高并发的场景下,出现了NOSQL的产品,redis,大家都知道redis,是把数据存储在内存中,省去了硬盘io读写时间,对海量数据的高效率存储和访问需求,效率也就大大的提高了,每个大厂几乎都在使用。

redis的优缺点

    优点就是,数据对存储在内存中,省去了硬盘io读写操作,大大提升了网站的访问效率,以key-value形式存储,可以达到快速查询,缺点就是比关系型数据库的存储类型少,当服务器关机后,内存释放后,数据都会消失,就需要我们手动,定期将数据同步到硬盘中。

    下面我们就动手安装吧。

安装redis 从docker仓库中拉取镜像

# docker pull redis

    出现下边的信息,说明拉取镜像成功

Using default tag: latest
latest: Pulling from library/redis
54fec2fa59d0: Already exists
9c94e11103d9: Pull complete
04ab1bfc453f: Pull complete
a22fde870392: Pull complete
def16cac9f02: Pull complete
1604f5999542: Pull complete
Digest: sha256:f7ee67d8d9050357a6ea362e2a7e8b65a6823d9b612bc430d057416788ef6df9
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest

确认镜像信息

# docker images

    确认redis镜像信息,本文在写的时候,redis在9天前发布了6.0版本,正好试用下。

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis                          latest              f9b990972689        9 days ago          104MB
mysql                        latest              a7a67c95e831        13 days ago         541MB

创建redis配置文件所需目录以及配置文件

# mkdir -p /mydata/redis/conf

# cd /mydata/redis/conf

# touch redis.conf

配置redis持久化(由于redis默认是将数据保存在内存中,redis重启后,数据会消失,这里的配置是将数据同步到磁盘中)

# vi redis.conf

添加appendonly yes

退出并保存

启动redis

# docker run --name myredis  -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --requirepass "123456"

--name就是给redis实例起个名字

-d就是后台运行

-p将docker的6379端口映射到linux服务器6379端口上

--requirepass就是给redis设定一个密码

启动完成后,看是否启动成功

# docker ps -a

    出现下边信息,尤其是STATUS是UP的状态,说明启动成功

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
72bae285e236        redis               "docker-entrypoint.s…"   35 seconds ago      Up 33 seconds       0.0.0.0:6379->6379/tcp   myredis

使用redis-cli操作redis

#  docker exec -it myredis redis-cli -a 123456

-a 就是使用我们在安装时设置的密码

    出现下边命令行,说明我们就可以操作redis,当然windows也有操作redis客户端的工具,更加直观,看个人习惯用什么吧

127.0.0.1:6379>

简单的操作redis

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name iosoft2020
OK
127.0.0.1:6379>
127.0.0.1:6379> get name
"iosoft2020"
127.0.0.1:6379>
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379>
127.0.0.1:6379>

    到这里,安装完成,使用过传统安装redis的小伙伴会深有体会,从官网下载安装包,解压,编译,启动等,非常的麻烦,费时间,使用docker安装redis非常简单吧,大家可以动手试一试。

以上就是5分钟教你docker安装redis到启动教程(全新方式)的详细内容,更多关于docker安装redis的资料请关注三水点靠木其它相关文章!

Redis 相关文章推荐
redis通过6379端口无法连接服务器(redis-server.exe闪退)
May 08 Redis
Redis 配置文件重要属性的具体使用
May 20 Redis
详解Redis瘦身指南
May 26 Redis
浅谈Redis的几个过期策略
May 27 Redis
Redis缓存-序列化对象存储乱码问题的解决
Jun 21 Redis
k8s部署redis cluster集群的实现
Jun 24 Redis
Redis如何实现分布式锁
Aug 23 Redis
详解redis在微服务领域的贡献
Oct 16 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
redis sentinel监控高可用集群实现的配置步骤
Apr 01 Redis
Redis基本数据类型哈希Hash常用操作命令
Jun 01 Redis
基于redis+lua进行限流的方法
Jul 23 Redis
详解缓存穿透击穿雪崩解决方案
浅谈Redis的几个过期策略
May 27 #Redis
Redis Cluster 字段模糊匹配及删除
May 27 #Redis
redis哨兵常用命令和监控示例详解
May 27 #Redis
Java Socket实现Redis客户端的详细说明
May 26 #Redis
redis实现共同好友的思路详解
详解Redis瘦身指南
May 26 #Redis
You might like
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
php无序树实现方法
2015/07/28 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
深入理解python中的atexit模块
2017/03/07 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
django如何实现视图重定向
2019/07/24 Python
Python3 assert断言实现原理解析
2020/03/02 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
人事主管岗位职责范本
2013/12/04 职场文书
人事部岗位职责范本
2014/03/05 职场文书
员工试用期自我评价
2014/09/18 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
nginx配置虚拟主机的详细步骤
2021/07/21 Servers