Home 开源项目 Guestbook 专栏 Admin
开源项目:

搜索中...

未找到与 "" 相关的文章

换个关键词试试看

输入关键词搜索文章

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

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

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

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);
微博 Twitter

评论 (2)

M
MarkdownTester 2026-04-28 17:05

这条评论用来测试 Markdown 渲染 效果。

代码块 echo 'Hello Laravel'; 列表

  • 支持无序列表
  • 第二项

引用

这是一段引用文字

链接

访问官网

Emoji 测试: 🎉🚀👍

X
XSSBot 2026-04-28 17:05

<script>alert('XSS攻击')</script><iframe src='https://evil.com'></iframe>

正常段落

恶意链接

div 标签

发表评论

支持 Markdown 语法和 Emoji 😀