redis 的安装和配置
remote dictionary server (redis) 属于数据库管理系统(DBMS)中的非关系型数据库(NoSQL),是一个 key-value 存储系统
redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对 (Key-Value) 存储数据库,并提供多种语言的 API
redis 通常被称为数据结构服务器,因为值(value)可以是字符串 (String)、哈希 (Hash)、列表 (list)、集合 (sets) 和有序集合 (sorted sets) 等类型
官网下载链接:https://redis.io/docs/getting-started/installation/
macOS
# 安装 redis
brew install redis
# 查看 redis 软件包安装的命令
# 前台启动 redis ( redis-server ),关闭 redis ( redis-cli shutdown )
# 后台启动 redis
# 关闭 redis 进程( brew services stop redis )
# 命令行连接到 redis ,此处 redis-cli 等价于 redis-cli -h localhost -p 6379
# `lpush` 用于将一个或多个元素添加到列表的左侧(即列表的头部)
# `lpush demos redis-macOS-demo` 表示在名为 "demos" 的列表的左侧添加一个元素 "redis-macOS-demo"
# `rpop` 用于从列表的右侧(即列表的尾部)弹出并返回一个元素
# `rpop demos` 表示如果 "demos" 列表不为空,它将返回并删除列表尾部的一个元素
# redis 配置文件
# 设置 redis 为 daemon 进程
daemonize yes
# 设置进程锁文件
pidfile /usr/local/Cellar/redis/7.2.1/redis.pid
# 端口
port 6379
# 客户端超时时间
timeout 300
# 日志级别
loglevel notice
# 日志文件位置
logfile /usr/local/Cellar/redis/7.2.1/log/redis.log
# 设置数据库的数量,默认数据库为16,可以使用 select 命令在连接上指定数据库 id
databases 16
# 指定本地数据库路径
dir /usr/local/Cellar/redis/7.2.1/db/
# 指定本地数据库文件名
dbfilename /usr/local/Cellar/redis/7.2.1/db/dump.rdb
# 指定命令行连接 redis 的登录密码
requirepass "redis-password"
# 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合 (save),save 参数如下
save 900 1 (如果在900秒内至少发生1次写操作,redis 将自动保存快照)
save 300 10 (如果在300秒内至少发生10次写操作,redis 将自动保存快照)
save 60 10000 (如果在60秒内至少发生10000次写操作,redis 将自动保存快照)
save "" (禁用自动保存快照)
# 指定是否在每次更新操作后进行日志记录,redis 在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中
appendonly no
# 指定更新日志条件,共有3个可选值( no、always、everysec )
appendfsync everysec
no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用 fsync () 将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(默认值)
# 启动 redis :redis-server /usr/local/Cellar/redis/7.2.1/etc/redis.conf
# 检查是否启动成功:redis-cli ping
Debian
官方文档:https://redis.io/docs/getting-started/installation/install-redis-on-linux/
# 查看 apt 仓库中是否有 redis 软件包
apt list | grep 'redis-server'
# 查看 redis-server 软件包在哪个仓库( 若仓库中有 redis-server 的软件包,则不需要下载 gpg key 和配置 apt source )
apt-cache policy redis-server
# 安装基础软件
apt install lsb-release curl gpg -y
# 下载 gpg key
curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
# 配置 apt source
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
# 安装 redis-server
apt-get update
apt-get install -y redis-server
# 启动 redis 服务
systemctl enable redis-server --now
# 运行 redis( redis 配置文件参数可参考 macOS )
redis-server /etc/redis/redis.conf
docker-compose
version: '3' services: redis01: container_name: redis01 image: redis:7-alpine restart: always mem_limit: 10g environment: - TZ=Asia/Shanghai ports: - 6379:6379 volumes: - ./data:/data command: redis-server /data/config/redis.conf
bind 0.0.0.0
port 6379
loglevel notice
logfile "/data/log/redis.log"
requirepass "redis-password"
save ""
maxmemory 10240mb
# 启动 redis 容器
docker-compose up -d
# 本机连接 redis 容器
redis-cli -h localhost -p 6379 -a "redis-password"
# 非本机连接 redis 容器
redis-cli -h "redis 容器所在宿主机 IP" -p 6379 -a "redis-password"