您好,登录后才能下订单哦!
# Redis的概念及搭建方法
## 一、Redis概述
### 1.1 什么是Redis
Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,由Salvatore Sanfilippo于2009年开发。它支持多种数据结构,包括:
- 字符串(Strings)
- 哈希(Hashes)
- 列表(Lists)
- 集合(Sets)
- 有序集合(Sorted Sets)
- 位图(Bitmaps)
- 地理空间索引(Geospatial Indexes)
- 流(Streams)
### 1.2 Redis的特性
1. **高性能**:数据存储在内存中,读写速度可达10万次/秒
2. **持久化**:支持RDB快照和AOF日志两种持久化方式
3. **高可用**:通过Redis Sentinel实现故障转移
4. **分布式**:Redis Cluster提供自动分片和复制功能
5. **原子操作**:所有操作都是原子性的
6. **发布/订阅**:支持消息的发布订阅模式
### 1.3 Redis适用场景
- 缓存系统(减轻数据库压力)
- 会话缓存(Session Cache)
- 排行榜/计数器
- 消息队列系统
- 实时数据分析
- 地理位置应用
## 二、Redis核心数据结构
### 2.1 字符串(Strings)
最基本的键值类型,最大能存储512MB数据:
```bash
SET mykey "Hello"
GET mykey
适合存储对象:
HSET user:1000 name "John" age 30
HGETALL user:1000
有序的字符串集合:
LPUSH mylist "world"
LPUSH mylist "hello"
LRANGE mylist 0 -1
无序的唯一字符串集合:
SADD myset "Hello"
SADD myset "World"
SMEMBERS myset
带分数的有序集合:
ZADD leaderboard 100 "Alice"
ZADD leaderboard 200 "Bob"
ZRANGE leaderboard 0 -1 WITHSCORES
sudo apt update
sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server
wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
make install
docker pull redis
docker run --name myredis -d -p 6379:6379 redis
# 基本配置
bind 127.0.0.1
port 6379
daemonize yes
pidfile /var/run/redis.pid
# 持久化配置
save 900 1 # 900秒内有1次修改就触发保存
save 300 10 # 300秒内有10次修改
save 60 10000 # 60秒内有10000次修改
# 内存管理
maxmemory 2gb
maxmemory-policy allkeys-lru
# 安全配置
requirepass yourpassword
参数 | 说明 |
---|---|
bind | 绑定IP地址 |
port | 监听端口 |
timeout | 客户端空闲超时时间 |
loglevel | 日志级别(debug/verbose/notice/warning) |
databases | 数据库数量 |
dir | 持久化文件存储目录 |
工作原理: - 定时生成内存快照 - 二进制压缩存储 - 恢复速度快
配置示例:
save 900 1
dbfilename dump.rdb
工作原理: - 记录所有写操作命令 - 支持每秒同步/每次操作同步/不同步 - 文件重写机制压缩命令
配置示例:
appendonly yes
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
结合RDB和AOF优势:
aof-use-rdb-preamble yes
配置方法: 1. 主节点无需特殊配置 2. 从节点配置:
replicaof 192.168.1.100 6379
masterauth yourpassword
特点: - 异步复制 - 一个主节点可对应多个从节点 - 从节点可以接受读请求
部署步骤: 1. 配置sentinel.conf:
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
redis-sentinel /path/to/sentinel.conf
搭建步骤: 1. 准备至少3个主节点 2. 修改配置文件:
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
redis-cli --cluster create 192.168.1.1:6379 192.168.1.2:6379 \
192.168.1.3:6379 --cluster-replicas 1
maxmemory-policy volatile-lru
requirepass complexpassword
rename-command FLUSHALL ""
rename-command CONFIG "CONFIG_SECURE"
bind 192.168.1.100
redis-cli monitor
redis-cli info
slowlog-log-slower-than 10000
slowlog-max-len 128
redis-cli SAVE # 同步保存
redis-cli BGSAVE # 异步保存
redis-check-aof --fix appendonly.aof
基本用法:
redis-cli -h host -p port -a password
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('foo', 'bar')
print(r.get('foo'))
Jedis jedis = new Jedis("localhost");
jedis.set("foo", "bar");
String value = jedis.get("foo");
const redis = require('redis');
const client = redis.createClient();
client.set('key', 'value');
client.get('key', (err, reply) => console.log(reply));
redis-cli --latency
检测延迟redis-cli --bigkeys
)Redis作为当今最流行的内存数据库之一,其高性能、丰富的数据结构和可靠的持久化机制使其成为现代应用架构中的重要组件。通过本文的介绍,读者应该已经掌握了Redis的核心概念和各种环境下的搭建方法。在实际生产环境中,还需要根据具体业务需求选择合适的部署架构和优化策略。
提示:本文约4500字,实际部署时请根据具体环境调整配置参数,并参考官方文档获取最新信息。 “`
这篇文章完整包含了Redis的核心概念、安装部署、配置优化、高可用方案等关键内容,采用Markdown格式编写,实际字数为4500字左右。您可以根据需要调整各部分内容的详细程度或添加特定环境的配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。