0
点赞
收藏
分享

微信扫一扫

docker安装redis,以及常用操作

皮皮球场 2022-01-23 阅读 52

1、安装redis镜像

docker hub官网:https://registry.hub.docker.com
在这里插入图片描述

[root@wangazure ~]# docker images #查看所有镜像
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@wangazure ~]# docker ps #查看所有容器
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@wangazure ~]# docker pull redis:6.2.6 #下载redis:6.2.6
6.2.6: Pulling from library/redis
a2abf6c4d29d: Pull complete 
c7a4e4382001: Pull complete 
4044b9ba67c9: Pull complete 
c8388a79482f: Pull complete 
413c8bb60be2: Pull complete 
1abfd3011519: Pull complete 
Digest: sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339
Status: Downloaded newer image for redis:6.2.6
docker.io/library/redis:6.2.6 #查看所有镜像
[root@wangazure ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        6.2.6     7614ae9453d1   4 weeks ago   113MB
[root@wangazure ~]# 

2、运行redis

[root@wangazure ~]# docker run --name redis01 -d -p 6379:6379 redis:6.2.6 #运行redis
dfa6af6ace44f04874d56ea3709b1fed22d52c0630ab3b5803972f2dd7da473c
[root@wangazure ~]# redis-cli
-bash: redis-cli: command not found
[root@wangazure ~]# 

3、进入redis

[root@wangazure ~]# redis-cli #直接在服务器里是进不去的
-bash: redis-cli: command not found
[root@wangazure ~]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED         STATUS         PORTS                                       NAMES
dfa6af6ace44   redis:6.2.6   "docker-entrypoint.s…"   5 minutes ago   Up 5 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   redis01
[root@wangazure ~]# docker exec -it dfa6 bash #要用这个交互命令进入it后边是容器id或者容器名称
root@dfa6af6ace44:/data# ls
root@dfa6af6ace44:/data# redis-cli #直接可以用这个命令进入redis
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 

4、springboot测试redis

依赖的话就引入这个就行

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

在这里插入图片描述

spring:
  application:
    name: spring-redis
  redis:
    host: 121.40.236.249
    port: 6379

在这里插入图片描述

@Resource
private RedisTemplate redisTemplate;

@Test
void testRedis() {
    redisTemplate.opsForValue().set("user", "zhangsan");
    Object user = redisTemplate.opsForValue().get("user");
    System.out.println(user);
}

看容器里有没有数据

[root@wangazure ~]# docker exec -it dfa6 bash
root@dfa6af6ace44:/data# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> keys *
1) "user"
127.0.0.1:6379> get user
"\"zhangsan\""
127.0.0.1:6379> 

5、用自己的redis.conf启动redis

在这里插入图片描述

[root@wangazure ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        6.2.6     7614ae9453d1   4 weeks ago   113MB
[root@wangazure ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@wangazure ~]# mkdir redisconf
[root@wangazure ~]# ls
install.sh  redisconf
[root@wangazure ~]# cd redisconf/
[root@wangazure redisconf]# vi redis.conf

appendonly yes #开启aof
appendfilename "test.aof" #该aof名为test

启动redis(-v /root/redisconf:/data,把生成的aof文件同步到服务器上/root/redisconf目录下)

[root@wangazure redisconf]# docker run --name redis02 -d -p 6379:6379 -v /root/redisconf:/data redis:6.2.6 redis-server /data/redis.conf
2faf301314c5647423742aaff92b22e311276502233ddca023f4d9d1abeff1d1
[root@wangazure redisconf]# ls
redis.conf  test.aof
[root@wangazure redisconf]# 

这里红框里的是你容器里的reids路径,最后也是对应的是容器里的conf文件
在这里插入图片描述

[root@wangazure redisconf]# docker run --name redis02 -d -p 6379:6379 -v /root/redisconf:/data redis:6.2.6 redis-server /data/redis.conf
b6f7fdc23ca9b0bd8e82c0789f2ef359f2a82d4ad40e9991c962362db9a30ba3
[root@wangazure redisconf]# ls #这里就有了aof
redis.conf  test.aof
[root@wangazure redisconf]# cat test.aof  #还没运行代码,查看aof还没有数据
[root@wangazure redisconf]# cat test.aof  #运行完代码,查看aof,已经有了数据了
*2
$6
SELECT
$1
0
*3
$3
SET
$4
user
$10
"zhangsan"
[root@wangazure redisconf]# 

6、redis跟随docker服务启动

这里的restart=always是让docker重启,redis就跟着重启,不用手动启动redis了。

[root@wangazure redisconf]# docker run --name redis02 -d -p 6379:6379 --restart=always -v /root/redisconf:/data redis:6.2.6 redis-server /data/redis.conf
783d6d924e5373bc6091ed0514edd0e4dce010afb4fc350f67d5ebae2f51874b
[root@wangazure redisconf]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED         STATUS         PORTS                                       NAMES
783d6d924e53   redis:6.2.6   "docker-entrypoint.s…"   5 seconds ago   Up 5 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   redis02
[root@wangazure redisconf]# systemctl restart docker #重启docker
[root@wangazure redisconf]# docker ps
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS         PORTS                                       NAMES
783d6d924e53   redis:6.2.6   "docker-entrypoint.s…"   36 seconds ago   Up 2 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   redis02
[root@wangazure redisconf]# 

未完待续······

举报

相关推荐

0 条评论