Typescript Express 框架 05 Redis集成
1 安装
npm install ioredis
2 实例化Redis客户端
src/db_client/redis.ts
import Redis from 'ioredis';
const redis = new Redis({
host: '127.0.0.1',
port: 6379,
password: '',
});
export default redis;
3 路由
查询案例
src/controller/RedisController.ts
import { Request, Response } from 'express';
import { Route } from '../utils/route.decorator';
import ResponseUtil from "../utils/ResponseUtil";
import redis from '../db_client/redis';
export class RedisController {
@Route('get', '/redis_test')
async redisTest2(req: Request, res: Response) {
const user_id = 1;
let data = {};
const user_info_str = await redis.get(`user:${ user_id }`);
console.log(`user_info_str: ${ user_info_str }`)
if (user_info_str) {
const user_info = JSON.parse(user_info_str);
console.log(`user_info: ${ user_info }`)
data = { user_info }
}
ResponseUtil.success(res, data, '查询成功', 20000);
}
}

<h2><a id="1__0"></a>1 安装</h2>
<pre><div class="hljs"><code class="lang-shell">npm install ioredis
</code></div></pre>
<h2><a id="2_Redis_6"></a>2 实例化Redis客户端</h2>
<p><code>src/db_client/redis.ts</code></p>
<pre><div class="hljs"><code class="lang-tsx"><span class="hljs-comment">// npm install ioredis</span>
<span class="hljs-keyword">import</span> <span class="hljs-title class_">Redis</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'ioredis'</span>;
<span class="hljs-keyword">const</span> redis = <span class="hljs-keyword">new</span> <span class="hljs-title class_">Redis</span>({
<span class="hljs-attr">host</span>: <span class="hljs-string">'127.0.0.1'</span>, <span class="hljs-comment">// Redis 服务器的地址</span>
<span class="hljs-attr">port</span>: <span class="hljs-number">6379</span>, <span class="hljs-comment">// Redis 服务器的端口</span>
<span class="hljs-attr">password</span>: <span class="hljs-string">''</span>, <span class="hljs-comment">// 如果有密码,填上</span>
});
<span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> redis;
</code></div></pre>
<h2><a id="3__24"></a>3 路由</h2>
<p>查询案例</p>
<p><code>src/controller/RedisController.ts</code></p>
<pre><div class="hljs"><code class="lang-tsx"><span class="hljs-keyword">import</span> { <span class="hljs-title class_">Request</span>, <span class="hljs-title class_">Response</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'express'</span>;
<span class="hljs-keyword">import</span> { <span class="hljs-title class_">Route</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'../utils/route.decorator'</span>;
<span class="hljs-keyword">import</span> <span class="hljs-title class_">ResponseUtil</span> <span class="hljs-keyword">from</span> <span class="hljs-string">"../utils/ResponseUtil"</span>;
<span class="hljs-keyword">import</span> redis <span class="hljs-keyword">from</span> <span class="hljs-string">'../db_client/redis'</span>; <span class="hljs-comment">// 导入 Redis 客户端</span>
<span class="hljs-keyword">export</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">RedisController</span> {
<span class="hljs-comment">// http://127.0.0.1:3000/api/v1/redis_test</span>
<span class="hljs-meta">@Route</span>(<span class="hljs-string">'get'</span>, <span class="hljs-string">'/redis_test'</span>)
<span class="hljs-keyword">async</span> <span class="hljs-title function_">redisTest2</span>(<span class="hljs-params">req: Request, res: Response</span>) {
<span class="hljs-keyword">const</span> user_id = <span class="hljs-number">1</span>;
<span class="hljs-keyword">let</span> data = {};
<span class="hljs-comment">// 尝试从 Redis 获取数据</span>
<span class="hljs-keyword">const</span> user_info_str = <span class="hljs-keyword">await</span> redis.<span class="hljs-title function_">get</span>(<span class="hljs-string">`user:<span class="hljs-subst">${ user_id }</span>`</span>);
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">`user_info_str: <span class="hljs-subst">${ user_info_str }</span>`</span>)
<span class="hljs-keyword">if</span> (user_info_str) {
<span class="hljs-keyword">const</span> user_info = <span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">parse</span>(user_info_str); <span class="hljs-comment">// 手动解析为 JSON 对象</span>
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">`user_info: <span class="hljs-subst">${ user_info }</span>`</span>)
data = { user_info }
}
<span class="hljs-title class_">ResponseUtil</span>.<span class="hljs-title function_">success</span>(res, data, <span class="hljs-string">'查询成功'</span>, <span class="hljs-number">20000</span>);
}
}
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/81641f7edd7fc8492a44301788e30714.png" alt="image.png" /></p>
留言