一、Redis简介

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

Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

二、安装docker-compose

Linux上我们可以从Github上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases

1、运行以下命令以下载Docker Compose的v2.11.0版本

[root@k8s-master ~]# wget -O /usr/bin/docker-compose https://github.com/docker/compose/releases/download/v2.11.0/docker-compose-linux-x86_64

2、授权可执行权限

[root@k8s-master ~]# chmod +x /usr/bin/docker-compose

3、测试是否安装成功

[root@k8s-master ~]# docker-compose -v

Docker Compose version v2.11.0

三、部署Redis

1、创建Redis目录

[root@k8s-master ~]# mkdir -p /opt/redis

2、创建docker-compose配置文件

[root@k8s-master ~]# cd /opt/redis

[root@k8s-master redis]# vim docker-compose.yml

version: "3.3"

services:

  redis:

    image: "redis:6.2.7"

    container_name: redis

    restart: always

    privileged: true

    ports:

      - "6379:6379"

    volumes:

      - ./redis.conf:/etc/redis/redis.conf:rw

      - ./data:/data:rw

    command:

      redis-server /etc/redis/redis.conf --appendonly yes

3、创建Redis配置文件

[root@k8s-master redis]# vim redis.conf

# 开启保护

protected-mode yes

# 绑定监听IP地址

bind 0.0.0.0

# 自定义密码

requirepass Aa123456

port 6379

timeout 0

# 900s内至少一次写操作则执行bgsave进行RDB持久化

save 900 1

save 300 10

save 60 10000

rdbcompression yes

dbfilename dump.rdb

dir /data

appendonly yes

appendfsync everysec

4、启动Redis

[root@k8s-master redis]# docker-compose up -d

5、查看Redis状态

[root@k8s-master redis]# docker-compose ps

NAME  COMMAND          SERVICE  STATUS     PORTS

redis "docker-entrypoint.s…"  redis   running       0.0.0.0:6379->6379/tcp

6、访问Redis

[root@k8s-master redis]# docker exec -it redis redis-cli

127.0.0.1:6379> keys *

(error) NOAUTH Authentication required.

127.0.0.1:6379> auth Aa123456

OK

127.0.0.1:6379> keys *

(empty array)

127.0.0.1:6379> set test 123

OK

127.0.0.1:6379> get test

"123"