首页 留言板 后台管理

搜索中...

未找到与 "" 相关的文章

换个关键词试试看

输入关键词搜索文章

支持搜索标题、内容、摘要

Redis 缓存实战:数据类型、过期策略与集群部署

admin · 2026-04-02 06:57 · Redis · 2

Redis 是一个开源的内存数据结构存储系统,支持多种数据类型,被广泛应用于缓存、消息队列和实时统计。

核心数据类型

String

最基础的数据类型,可以存储字符串、整数或浮点数:

SET user:1:name "Snowman"
GET user:1:name
INCR view_count

Hash

适合存储对象:

HSET user:1 name "Snowman" email "snow@example.com"
HGETALL user:1

List

实现队列和栈:

LPUSH queue:emails "email1@example.com"
RPOP queue:emails

Set

无序唯一集合:

SADD tags:post:1 "php"
SADD tags:post:1 "laravel"
SMEMBERS tags:post:1

Sorted Set

带权重的有序集合:

ZADD leaderboard 100 "player1"
ZADD leaderboard 200 "player2"
ZREVRANGE leaderboard 0 9 WITHSCORES

过期策略

Redis 提供了三种删除过期键的策略:

  1. 定时删除:设置过期时间时创建定时器,到期立即删除。对 CPU 不友好。
  2. 惰性删除:访问键时检查是否过期,过期则删除。对内存不友好。
  3. 定期删除:每隔一段时间随机检查一批键,删除过期的。平衡方案。

Redis 实际采用惰性删除 + 定期删除的组合策略。

持久化

RDB 快照

在指定时间间隔内将内存数据快照保存到磁盘:

save 900 1
save 300 10
save 60 10000

AOF 日志

记录每个写操作命令,重启时重新执行:

appendonly yes
appendfsync everysec

Laravel 中使用 Redis

use Illuminate\Support\Facades\Redis;

// 存储缓存
Redis::set('name', 'Snowman');
Redis::expire('name', 3600);

// 获取缓存
$name = Redis::get('name');

// 使用缓存门面
Cache::store('redis')->put('key', 'value', 3600);

评论 (0)

暂无评论,来说两句吧!

发表评论