目录
介绍
1. 数据结构丰富
Redis 支持多种数据结构,包括:
- 字符串(String): 可以用来存储任何类型的数据,例如文本、数字或二进制数据。
- 哈希(Hash): 存储字段和值的映射,适合用于表示对象。
- 列表(List): 有序的字符串列表,可以用来实现消息队列或堆栈。
- 集合(Set): 不重复的元素集合,用于实现集合操作(如交集、并集)。
- 有序集合(Sorted Set): 元素按照分数进行排序,可以用于排行榜、计分板等功能。
- 位图(Bitmap): 用于处理位操作。
- HyperLogLog: 用于近似计数,适合处理大量数据的唯一计数。
- 地理空间(Geo): 用于处理地理位置数据。
2. 高性能
Redis 是内存数据库,通过内存操作实现了非常高的读写速度。它支持持久化功能,可以将数据保存在磁盘上,以防止数据丢失。
3. 持久化
Redis 提供了多种持久化选项:
- RDB(快照): 定期将数据库状态保存到磁盘上的 RDB 文件中。
- AOF(追加文件): 记录每次写操作,将操作日志追加到 AOF 文件中,以便在重启时重放这些操作来恢复数据。
- 混合持久化: 结合 RDB 和 AOF,结合两者的优点。
1.拉取Redis镜像
docker pull redis
2.创建挂载目录(可选)
mkdir /myredis
3.配置Redis持久化(可选)
如果不做任何配置,Redis的数据就只存在于容器内存中,重启或停止容器后数据会丢失。为了持久化数据,可以编写Redis配置文件,将其挂载到容器中:
# 创建配置文件
mkdir /docker/myredis/conf
tee /docker/myredis/conf/redis.conf <<-'EOF'
appendonly yes
requirepass 123456 #设置redis密码,这行可选,yourpassword为 自定义的密码
EOF
4.使用配置文件运行容器
docker run -d --name myredis -p 6379:6379 -v /docker/myredis:/data -v /docker/myredis/conf/redis.conf:/etc/redis/redis.conf -e TZ=Asia/Shanghai --restart unless-stopped redis redis-server /etc/redis/redis.conf
docker run -d
: 以后台模式运行容器 (-d
是--detach
的简写)。--name myredis
: 给容器指定一个名称myredis
。-p 6379:6379
: 将宿主机的 6379 端口映射到容器的 6379 端口,使宿主机可以通过该端口访问 Redis。-v /docker/myredis:/data
: 将宿主机的/docker/myredis
目录挂载到容器的/data
目录,这样容器的数据存储在宿主机上,确保数据持久化。-v /docker/myredis/conf/redis.conf:/etc/redis/redis.conf
: 将宿主机的 Redis 配置文件/docker/myredis/conf/redis.conf
挂载到容器的/etc/redis/redis.conf
,以便 Redis 容器使用该配置文件。-e TZ=Asia/Shanghai
: 设置环境变量TZ
为Asia/Shanghai
,这将影响容器的时区。--restart unless-stopped
: 设置容器的重启策略为“除非手动停止”。这意味着如果容器崩溃或 Docker 重启,容器会自动重新启动,除非你手动停止它。redis
: 使用 Redis 官方镜像启动容器。redis-server /etc/redis/redis.conf
: 命令在容器内运行 Redis 服务器,并使用/etc/redis/redis.conf
配置文件来启动 Redis 服务。
5.查看redis日志
docker logs myredis
使用docker compose 安装
环境
ubuntu 20.04
1.安装docker
Ubuntu 安装Docker 运行Nginx-CSDN博客
2.安装docker-compose
Ubuntu 安装 docker-compose-CSDN博客
3.编写shell脚本
vim shart.sh
#!/bin/bash
# 创建目录结构
rm -r /docker/redis
mkdir -p /docker/redis/data
# 进入目标目录
cd /docker/redis
# 将内容写入 docker-compose.yml 文件
cat <<EOF > docker-compose.yml
services:
redis:
image: redis:latest
restart: unless-stopped
container_name: redis
ports:
- "6379:6379"
environment:
- REDIS_PASSWORD=123456
- TZ=Asia/Shanghai
volumes:
- /docker/redis:/data
- /docker/redis/conf/redis.conf:/etc/redis/redis.conf
EOF
# 启动 Docker Compose
docker compose up -d
4.启动shell脚本
sh start.sh