1 基础知识
1.1 Redis的简介
Redis是一种开放源代码(BSD许可)的运行于内存中的数据结构存储
1.2 Redis的用途
– Redis可作为数据库
– Redis可作为缓存
– Redis可作为消息代理
1.3 Redis支持的数据结构
– 字符串结构
– 哈希结构
– 列表结构
– 集合结构
– 带范围查询的排序集合结构
– 位图结构
– 超日志结构
– 带半径查询和流的地理空间索引结构
1.4 Redis的功能
– Redis支持内置复制功能
– Redis支持内置Lua脚本功能
– Redis支持内置LRU驱逐功能
– Redis支持内置事务功能
– Redis支持不同级别的磁盘持久性功能
1.5 Redis-cli
1.5.1 Redis-cli的简介
– redis-cli是Redis命令行界面
– redis-cli可直接从终端向Redis发送命令并读取服务器的回复
1.5.2 Redis-cli的主要模式
– 交互模式,键入命令且能获取回复
– 标准输出模式,将命令行作为参数发送
– 特殊模式,接收主服务器的流并模拟从服务器输出该流
2 最佳实践
2.1 部署前的准备
2.1.1 准备Docker环境
如果你尚未部署Docker集群环境,请参阅如下章节部署,
2.1.2 准备Redis镜像
In docker01
cd /data/docker/images/ docker load -i redis_3.0.3.tar docker tag redis:3.0.3 docker01.cmdschool.org:5000/redis:3.0.3 docker push docker01.cmdschool.org:5000/redis:3.0.3 docker image rm redis:3.0.3
另外,安装包的离线下载请在能上网的docker环境的机器上使用如下命令,
docker pull redis:3.0.3 docker save redis:3.0.3 -o redis_3.0.3.tar
另外,其他版本请从以下链接下载,
https://hub.docker.com/_/redis
2.2 部署Redis
In docker01
2.2.1 创建服务配置文件
vim /data/docker/yml/redis-stack.yml
加入如下配置,
version: '3.1' services: redis: image: docker01.cmdschool.org:5000/redis:3.0.3 ports: - 6379:6379 volumes: - /data/docker/service/redis/redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf restart: always environment: TZ: Asia/Shanghai deploy: replicas: 1 placement: constraints: [node.labels.redis == true] logging: driver: "json-file" options: max-size: "100m" max-file: "5"
根据配置需求创建数据存放目录,
In docker02
mkdir -p /data/docker/service/redis
创建程序所需的配置,
vim /data/docker/service/redis/redis.conf
配置修改如下,
daemonize no pidfile /var/run/redis/redis.pid port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 0 loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 requirepass redispasswd appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes
需要注意的是,因为Docker要求程序必须以前端运行,所以“daemonize no”是必须的,另外,我们需要根据配置的需求设置运行标记,
In docker01
docker node update --label-add redis=true docker02.cmdschool.org
2.2.2 部署服务
docker stack deploy -c /data/docker/yml/redis-stack.yml redis
2.2.3 配置安全认证
In docker02
docker exec -it `docker container ls | grep redis | cut -d" " -f1 ` bash
登录虚拟机后,请使用如下交互命令使用redis服务,
redis-cli 127.0.0.1:6379> auth redispasswd OK 127.0.0.1:6379> set foo bar OK 127.0.0.1:6379> get foo "bar" 127.0.0.1:6379> quit
参阅文档
===================
Docker官方文档
—————-
https://hub.docker.com/_/redis
Redis官方文档
————-
https://redis.io/
Redis支持的指令
————–
https://redis.io/commands
Redis支持的客户端
——————
https://redis.io/clients
Redis的文档
—————–
https://redis.io/documentation
Rediscli的使用
——————
https://redis.io/topics/rediscli
没有评论