一、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"