
手把手教你在学会Docker安装Redis镜像
大家都知道 Docker 是个非常好用的容器工具,但是很多人对这个工具怎么在自己的服务器上安装和启动都比较陌生,因为 Docker 现在很多人都使用的是 Windows 的,尽管这个工具有很多公司对他抱有反对的态度,但是技术嘛,我们还是要学习一下的,今天我们就学一下 Docker 的安装,和安装镜像,并且实现一个小功能。
安装Docker
1.在线安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
在线安装方式二
curl -sSL https://get.daocloud.io/docker | sh
3.查看Docker
yum list docker-ce --showduplicates | sort -r
4.查看Docker版本
docker version
5.启动Docker
systemctl start docker
6.测试Docker是否启动成功
(1).拉取HelloWorld的镜像
docker pull hello-world
(2).运行hello-world镜像
docker run hello-world
看到下面的图就证明安装成功了
Docker 安装各种开发必备内容
1.Docker 安装 Redis
1. 查看 Redis 的版本
docker search redis
2.取最新版的 Redis 镜像
docker pull redis:latest
3.查看本地镜像
docker images
4.运行容器(这是只能本地访问,但是我们需要进行外网访问)
docker run -itd --name redis-test -p 6379:6379 redis
-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
5.通过 redis-cli 连接测试使用 redis 服务。
docker exec -it redis-test /bin/bash
6.查看 Redis是否启动成功
ps aux | grep redis-server
出现如下,则为成功
上面的方法只能本地访问,我们需要的是外网访问redis
4.创建conf 和 data 文件夹
mkdir /usr/local/docker/conf
/usr/local/docker/data
然后再conf下创建redis.conf 的配置文件
放入如下内容,密码可不用配置
5. 创建redis容器并启动
6.查看Redis是否启动
docker ps
就可以看到redis了,如果状态是UP,那么就可以确定是安装成功了,启动完成之后,把云服务器的6379端口出入打开,就可以看到了。
这时候我们就可以去使用外部工具进行连接了。
直接在本地就可以连接我们在服务器上装好的 Redis了。
Redis装好了,我们就来写个小代码实现一下 Redis 排行榜的功能把。
Redis怎么去实现排行榜的功能呢?这实际上也是非常有意思的一个需求,我们先来确定一下 Redis 实现排行榜都需要准备什么样子的工作。
Redis实现排行榜
为什么 Redis 可以实现排行榜的功能呢?
这也是和数据结构有一定的关系,因为我们大家的认知里面,都知道 Redis 支持各种数据类型的存储,有 String 有 List,还有 Set ,而 Redis 中就是因为有了这个 Set 所以实现排行榜就相对来说比较简单了,因为 Set 是有序的。
Sorted Sets数据类型就像是set和hash的混合,与sets一样,Sorted Sets是唯一的,不重复的字符串组成。可以说Sorted Sets也是Sets的一种。
Sorted Sets是通过Skip List(跳跃表)和hash Table(哈希表)的双端口数据结构实现的,因此每次添加元素时,Redis都会执行O(log(N))操作。所以当我们要求排序的时候,Redis根本不需要做任何工作了,早已经全部排好序了。元素的分数可以随时更新。
使用 Redis 实现排行榜
我们使用 Springboot 来整合一下 Redis 然后使用 Sorted Sets 来实现一下我们想做的这个排行榜。
1. 创建 Springboot 项目,导入依赖
我们在这里就使用 RedisTemplate,
2.增加配置
给 Redis 中存数据信息
运行我们的测试可以看到
获取前10名(根据分数倒序)
这时候我们就能看到数据信息
我们在开头使用了批量新增的方式直接给把所有的数据都填充进去了,实际上肯定不是这个样子的,因为大部分的数据我们肯定都是一条记录一条记录增加的,比如现在有个新人 aaaa 他的得分是777 这时候我们要插入到 Redis 中
这时候我们获取一下 aaaa 的排名情况。
这时候我们看一下打印出来的结果
如果我们在其中想查询 700分到800分之间的人数?
这样是不是就实现了一个简易版的排行榜的功能呢?不过这种简单的代码,阿粉相信各位读者一定是可以完成的,但是对于刚入行的新人来说,还是有一点帮助的,你说是不是呢?
本文转载自公共号Java极客技术。
