Docker安装Reids
redis安装
创建挂载的目录
mkdir -p /home/docker-data/redis/conf
mkdir -p /home/docker-data/redis/data
language-shell复制代码
新增Redis配置文件
将bind 127.0.0.1注释掉,保证可以从远程访问到该Redis,不单单是从本地
appendonly:开启数据持久化到磁盘
requirepass:设置访问密码为123456
vim /home/docker-data/redis/conf/redis.conf
language-shell复制代码
#bind 127.0.0.1
protected-mode no
appendonly yes
requirepass 123456
创建redis容器并启动
redis redis-server 实现让docker容器运行时使用本地配置的Redis配置文件的功能了
docker run \
--name redis \
-p 6379:6379 \
-v /home/docker-data/redis/data:/data \
-v /home/docker-data/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
language-shell复制代码
进入容器内部进行测试
- 进入容器
docker exec -it redis redis-cli
language-shell复制代码
- 设置密码
auth 123456
- 测试
set a 1
get a
language-shell复制代码
K8s安装Reids集群
1. 设置redis集群网卡及查看
docker network create redis --subnet 172.38.0.0/16
docker network ls
docker network inspect redis
language-shell复制代码
2. 创建redis节点及设置
for port in $(seq 1 6);
do
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
language-shell复制代码
3. 拉取redis镜像并启动redis节点
- 节点1
docker run -p 6371:6379 -p 16371:16379 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
language-shell复制代码
2 . 节点2
docker run -p 6372:6379 -p 16372:16379 --name redis-2 \
-v /mydata/redis/node-2/data:/data \
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
language-shell复制代码
3 . 节点3
docker run -p 6373:6379 -p 16373:16379 --name redis-3 \
-v /mydata/redis/node-3/data:/data \
-v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
language-shell复制代码
4 . 节点4
docker run -p 6374:6379 -p 16374:16379 --name redis-4 \
-v /mydata/redis/node-4data:/data \
-v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
language-shell复制代码
5 . 节点5
docker run -p 6375:6379 -p 16375:16379 --name redis-5 \
-v /mydata/redis/node-5/data:/data \
-v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
language-shell复制代码
6 . 节点6
docker run -p 6376:6379 -p 16376:16379 --name redis-6 \
-v /mydata/redis/node-6/data:/data \
-v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
language-shell复制代码
4. 以交互模式进入redis节点内
docker exec -it redis-1 /bin/sh
language-shell复制代码
5. 创建redis集群
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 \
172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 \
172.38.0.16:6379 --cluster-replicas 1
language-shell复制代码
参考链接
数据结构
string
可变对象,在1M大小以下空间扩展速度为1倍,1M以上速度为每次1M,最大512M,超过会报错。
language-redis复制代码
list
可以保存2^32-1个item
列表的插入数据O(1),索引定位O(n)
主要用于队列。rpush lpop
用于栈:rpush rpop
lpush key value1 vlue2
rpush key value1 vlue2
lpop key
rpop key
linsert key before v3 v2
linsert key after v1 v2
lrange key start end [返回范围内的元素]
iset key index value [替换值,慎用]
lindex key index [返回索引值,慎用]
language-redis复制代码
hash
set
zset
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 hjxstart@126.com