# 本地缓存示例

URL: https://caijiao.org/sqlite/projects/cache
Source: docs/sqlite/projects/cache.md
Description: 本章节介绍如何使用 SQLite 实现本地缓存功能，通过缓存数据减少网络请求，提高应用性能和响应速度。

使用 SQLite 作为本地缓存数据库，可以存储从服务器获取的数据，避免重复请求。

## 创建缓存表

```sql
CREATE TABLE IF NOT EXISTS cache (
  key TEXT PRIMARY KEY,
  value TEXT,
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
```

## 插入或更新缓存

```sql
INSERT INTO cache (key, value, updated_at) VALUES (?, ?, CURRENT_TIMESTAMP)
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at;
```

## 读取缓存

```sql
SELECT value FROM cache WHERE key = ?;
```

## 示例流程

1. 应用请求数据时先查询缓存。
2. 如果缓存存在且未过期，直接返回缓存数据。
3. 否则向服务器请求数据，更新缓存后返回结果。

通过 [SQLite](/sqlite/) 本地缓存，提升应用性能和用户体验。
