请稍等...

小波Note

四川 · 成都市多云15 ℃
中文

Redis 介绍和配置

成都 (cheng du)2024/9/6 21:33:562.53k预计阅读时间 8 分钟收藏Ctrl + D / ⌘ + D
cover
IT FB(up 主)
后端开发工程师
文章摘要
Github Copilot

文章摘要加载中...

Redis 是一个开源的内存数据结构存储,用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合、位图、超日志、地理空间索引和流。Redis 内置了复制、Lua 脚本、LRU 驱逐、事务和不同级别的磁盘持久化,并通过 Redis Sentinel 和 Redis Cluster 提供高可用性和自动分区。

Redis 的主要特点

高性能:Redis 是内存数据库,读写速度非常快。

丰富的数据类型:支持多种数据结构,适用于不同的应用场景。

持久化:支持将数据持久化到磁盘,防止数据丢失。

复制:支持主从复制,数据可以在多个 Redis 实例之间复制。

高可用性:通过 Redis Sentinel 提供监控、通知和自动故障转移。

分布式:通过 Redis Cluster 提供自动分区和高可用性。

事务:支持事务,可以一次执行多个命令。

Redis 的应用场景

缓存:Redis 作为缓存,可以提高数据读写速度。

计数器:Redis 的原子性操作可以实现计数器功能。

消息队列:Redis 的列表结构可以实现消息队列。

排行榜:Redis 的有序集合可以实现排行榜功能。

会话管理:Redis 可以存储会话数据,实现会话管理。

分布式锁:Redis 的分布式锁可以实现分布式系统的并发控制。

Redis 配置

Redis 的配置文件位于 /etc/redis/redis.conf,可以通过修改配置文件来配置 Redis。

常用的配置项如下

daemonize: 是否以守护进程模式运行,默认为 no。

port: Redis 服务器监听的端口,默认为 6379。

bind: Redis 服务器监听的地址,默认为 0.0.0.0。

timeout: 客户端闲置多长时间后关闭连接,默认为 0,表示不关闭。

loglevel: 日志级别,可选值为 debug、verbose、notice、warning,默认为 notice。

logfile: 日志文件路径,默认为 stdout。

databases: 数据库数量,默认为 16。

save: 持久化配置,格式为 save 秒数 修改次数,默认为 save 900 1。

rdbcompression: 是否压缩 rdb 文件,默认为 yes。

dbfilename: rdb 文件名,默认为 dump.rdb。

dir: rdb 文件保存路径,默认为 /var/lib/redis。

maxmemory: 最大内存限制,默认为 0,表示不限制。

maxmemory-policy: 内存超出限制后的处理策略,可选值为 volatile-lru、allkeys-lru、volatile-random、allkeys-random、volatile-ttl,默认为 noeviction。

appendonly: 是否开启 aof 持久化,默认为 no。

appendfilename: aof 文件名,默认为 appendonly.aof。

appendfsync: aof 持久化策略,可选值为 always、everysec、no,默认为 everysec。

requirepass: 设置密码,默认为不设置。

maxclients: 最大客户端连接数,默认为 10000。

maxmemory-samples: LRU 算法采样数,默认为 5。

slaveof: 主从复制配置,格式为 slaveof 主机名 端口号。

masterauth: 主从复制密码。

cluster-enabled: 是否开启集群模式,默认为 no。

cluster-config-file: 集群配置文件,默认为 nodes.conf。

cluster-node-timeout: 集群节点超时时间,默认为 15000。

cluster-slave-validity-factor: 集群从节点复制因子,默认为 10。

cluster-migration-barrier: 集群迁移屏障,默认为 1。

cluster-require-full-coverage: 集群是否需要所有槽被覆盖,默认为 yes。

cluster-replica-no-failover: 集群从节点是否可以进行故障转移,默认为 no。

cluster-announce-ip: 集群节点广播地址。

cluster-announce-port: 集群节点广播端口。

cluster-announce-bus-port: 集群节点总线端口。