Files
AIclinicalresearch/docs/07-运维文档/05-Redis缓存与队列的区别说明.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

16 KiB
Raw Blame History

Redis蝻枏<EFBFBD> vs Redis<69><EFBFBD> - 霂衣<E99C82>霂湔<E99C82>

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦嚗? V1.0
*<EFBFBD>𥕦遣<EFBFBD><EFBFBD>嚗? 2025-12-12
<EFBFBD><EFBFBD>霂餉<EFBFBD><EFBFBD><EFBFBD> 鈭批<E988AD>蝏讐<E89D8F><E8AE90><EFBFBD><EFBFBD><EFBFBD>睲犖<E79DB2>? *<EFBFBD><EFBFBD>嚗?<><E79E89>Redis蝻枏<E89DBB><E69E8F>朙edis<69><EFBFBD><E7AC94><EFBFBD><EFBFBD>?


<EFBFBD><EFBFBD> <20><EFBFBD>

  1. <EFBFBD><EFBFBD><EFBFBD>
  2. [敶枏<E695B6>蝟餌<E89D9F><E9A48C><EFBFBD><E7AC94><EFBFBD><E59786>(#2-敶枏<E695B6>蝟餌<E89D9F><E9A48C><EFBFBD><E7AC94><EFBFBD>?
  3. Redis蝻枏<EFBFBD> vs Redis<69><EFBFBD>撖寞<E69296>
  4. [<5B>芰鍂Redis蝻枏<E89DBB><E69E8F><EFBFBD><EFBFBD>䓞(#4-<2D>芰鍂redis蝻枏<E89DBB><E69E8F><EFBFBD><EFBFBD>?
  5. <EFBFBD>舐鍂Redis<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤣰<EFBFBD>𠹺<EFBFBD>憌𡡞埯
  6. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>

1. <20><EFBFBD><EFBFBD>

1.1 隞<><EFBFBD>糓Redis嚗?

Redis = 銝<>銝芷<E98A9D><E88AB7><EFBFBD><E689AF><EFBFBD><EFBFBD>摮䀹㺭<E480B9><EFBFBD>

<EFBFBD>臭誑<EFBFBD><EFBFBD>圾銝綽<EFBFBD>

  • <EFBFBD>蘨 *<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭怠<EFBFBD>摮睃<EFBFBD><EFBFBD>函征<EFBFBD>?
  • <EFBFBD><EFBFBD> 霂餃<EFBFBD><EFBFBD>笔漲<EFBFBD><EFBFBD>嚗?ms<6D><73><EFBFBD>
  • <EFBFBD>𠒣 *<EFBFBD><EFBFBD><EFBFBD>唳旿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  • <EFBFBD><EFBFBD> *憭帋葵<EFBFBD>滚𦛚<EFBFBD>典虾隞亙<EFBFBD>鈭?

Redis<EFBFBD>祈澈<EFBFBD><EFBFBD>銝?*撌亙<E6928C>蝞?*嚗屸<E59A97><E5B1B8><EFBFBD><EFBFBD><E695BA>撌亙<E6928C><EFBFBD><EFBFBD><EFBFBD><E6A183><EFBFBD><EFBFBD>嚗?

  • String嚗<EFBFBD><EFBFBD>蝚虫葡嚗争<EFBFBD><EFBFBD>?<3F><EFBFBD>蝻枏<E89DBB>
  • List嚗<EFBFBD><EFBFBD>銵剁<EFBFBD><EFBFBD><EFBFBD>?<3F><EFBFBD><E585B6><EFBFBD>
  • Set嚗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  • Hash嚗<EFBFBD><EFBFBD>撣諹”嚗?
  • Sorted Set嚗<74><E59A97>摨誯<E691A8><E8AAAF><EFBFBD><EFBFBD>

1.2 Redis蝻枏<E89DBB> vs Redis<69><EFBFBD>

餈嗘舅銝芣<EFBFBD>敹菜糓**雿輻鍂Redis<69><73><EFBFBD><EFBFBD>峕䲮撘?*嚗䔶<E59A97><E494B6>臭舅銝芯<E98A9D><E88AAF>𣬚<EFBFBD>鈭批<E988AD>嚗?

<EFBFBD><EFBFBD>鈭駵edis摰硺<EFBFBD><EFBFBD><EFBFBD>韐凋僭<EFBFBD><EFBFBD><EFBFBD>
    <20>?
<0A>臭誑<E887AD>峕𧒄<E5B395><EFBFBD>嚗?
    <20><EFBFBD> Redis蝻枏<E89DBB><EFBFBD>鍂String<6E>唳旿蝏𤘪<E89D8F>嚗?
    <20><EFBFBD> Redis<69><EFBFBD><EFBFBD>鍂List<73>唳旿蝏𤘪<E89D8F> + BullMQ摨橒<E691A8>

蝐餅<EFBFBD><EFBFBD><EFBFBD>嚗?

Redis = 銝<><E98A9D>见之璆潘<E79286><E6BD98>刻揚銋啁<E98A8B>嚗?

Redis蝻枏<E89DBB> = 憭扳未<E689B3>𣬚<EFBFBD>"敹恍<E695B9><EFBFBD>"
- 摮䀝<E691AE>镼踴<E995BC><E8B8B4><EFBFBD>銝𡏭正
- <20><EFBFBD><E39591><EFBFBD>𧒄<EFBFBD>?
- <20><EFBFBD><EFBFBD>敹恍<E695B9><E6818D>䰻霂?

Redis<69><EFBFBD> = 憭扳未<E689B3>𣬚<EFBFBD>"隡𣳇<E99AA1><F0A3B387>蒂"
- 隞餃𦛚<E9A483><EFBFBD>
- <20>厰◇摨誩<E691A8><E8AAA9>?
- <20><EFBFBD><EFBFBD><EFBFBD>郊隞餃𦛚

2. 敶枏<E695B6>蝟餌<E89D9F><E9A48C><EFBFBD><E7AC94><EFBFBD>?

2.1 隞<><E99A9E><EFBFBD><E79289><EFBFBD><E4BAA6>?<3F>?

*<EFBFBD>𤑳緵1嚗鋳ullMQ撌脣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>芯蝙<EFBFBD>?

// backend/package.json (蝚?6銵?
"bullmq": "^5.65.0",  // <20>?撌脣<E6928C><EFBFBD><E98B86><EFBFBD><E99A9E>銝剜𧊋雿輻鍂

<EFBFBD>𤑳緵2嚗𡁜<EFBFBD><EFBFBD>滢蝙<EFBFBD>刻䌊<EFBFBD>𠉛<EFBFBD>MemoryQueue

// backend/src/common/jobs/JobFactory.ts
export class JobFactory {
  private static createQueue(): JobQueue {
    const queueType = process.env.QUEUE_TYPE || 'memory';  // <20>?暺䁅恕memory
    
    switch (queueType) {
      case 'memory':
        return this.createMemoryQueue();  // <20>?敶枏<E695B6>雿輻鍂餈嗘葵
      
      case 'database':
        // TODO: 摰䂿緵DatabaseQueue  // <20>?餈䀹瓷摰䂿緵
        return this.createMemoryQueue();
    }
  }
}

*<EFBFBD>𤑳緵3嚗餷obQueue<EFBFBD>?銝芣<E98A9D>隞嗡葉鋡怠<E98BA1><E680A0><EFBFBD><E58981>?0甈?

// 銝餉<E98A9D>雿輻鍂雿滨蔭嚗?
1. ExtractionController.ts (TODO瘜券<EFBFBD>)
2. DualModelExtractionService.ts (TODO瘜券<EFBFBD>)
3. test-platform-api.ts (瘚贝<EFBFBD><EFBFBD><EFBFBD>)
4. test-platform-infrastructure.ts (瘚贝<EFBFBD><EFBFBD><EFBFBD>)

2.2 <20><EFBFBD><E7AC94><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD> 摰㕑<EFBFBD><EFBFBD><EFBFBD>? 雿輻鍂<EFBFBD><EFBFBD>? 霂湔<EFBFBD>
Redis蝻枏<EFBFBD> <EFBFBD>?<3F><EFBFBD>蝵? <EFBFBD>?<3F>芯蝙<E88AAF>? <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>烘emoryCache
Redis<EFBFBD><EFBFBD> <EFBFBD>?<3F><EFBFBD>蝵? <EFBFBD>?<3F>芯蝙<E88AAF>? BullMQ撌脣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>芸鍳<EFBFBD>?
<EFBFBD><EFBFBD><EFBFBD>蝻枏<EFBFBD> <EFBFBD>?撌脣<E6928C><E884A3>? <EFBFBD>?雿輻鍂銝? HealthCheck<EFBFBD><EFBFBD>LM蝏𤘪<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>?撌脣<E6928C><E884A3>? <EFBFBD>?雿輻鍂銝? MemoryQueue

蝏栞捏嚗?

  • <EFBFBD>?<3F><EFBFBD>蝟餌<E89D9F>撌脩<E6928C><EFBFBD><E686B8><EFBFBD><E988AD><EFBFBD>埈沲<E59F88><E6B2B2><EFBFBD>MemoryQueue嚗?
  • <EFBFBD>?撌脩<E6928C>摰㕑<E691B0><EFBFBD>ullMQ靘肽<E99D98>
  • <EFBFBD>?雿<><E99BBF><EFBFBD><EFBFBD><EFBFBD>瘝⊥<E7989D><E28AA5><EFBFBD>迤雿輻鍂Redis嚗<73><E59A97>霈箸糓蝻枏<E89DBB>餈䀹糓<E480B9><EFBFBD>嚗?

3. Redis蝻枏<E89DBB> vs Redis<69><EFBFBD>撖寞<E69296>

3.1 <20><EFBFBD>撖寞<E69296>

蝏游漲 Redis蝻枏<EFBFBD> Redis<EFBFBD><EFBFBD>
*<EFBFBD><EFBFBD>? 摮睃<EFBFBD>銝湔𧒄<EFBFBD>唳旿 <EFBFBD>郊隞餃𦛚蝞∠<EFBFBD>
<EFBFBD>唳旿蝏𤘪<EFBFBD> String嚗<EFBFBD><EFBFBD>蝚虫葡嚗? List嚗<EFBFBD><EFBFBD>銵剁<EFBFBD>
<EFBFBD><EFBFBD> GET / SET / DELETE PUSH / POP / ACK
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> TTL<EFBFBD>芸𢆡餈<EFBFBD><EFBFBD> 隞餃𦛚摰峕<EFBFBD><EFBFBD>𤾸<EFBFBD><EFBFBD>?
霂餃<EFBFBD><EFBFBD> <EFBFBD>𤩺㦤霂餃<EFBFBD> 憿箏<EFBFBD><EFBFBD><EFBFBD>嚗㇅IFO嚗?
<EFBFBD><EFBFBD><EFBFBD>箸艶 LLM蝏𤘪<EFBFBD>蝻枏<EFBFBD><EFBFBD><EFBFBD>ession <EFBFBD><EFBFBD>讃蝑偦<EFBFBD>劐遙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
摨?撌亙<E6928C> <EFBFBD>湔𦻖<EFBFBD>甬oredis BullMQ嚗<EFBFBD>抅鈭箸oredis嚗?

3.2 <20><EFBFBD>蝟餌<E89D9F>銝剔<E98A9D>摰鮋<E691B0>摨𠉛鍂

*Redis蝻枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

// <20>箸艶1嚗匁LM蝏𤘪<E89D8F>蝻枏<E89DBB>
const cacheKey = `fulltext:${literatureId}:${model}`;
await cache.set(cacheKey, llmResult, 3600);  // 蝻枏<E89DBB>1撠𤩺𧒄

// 銝𧢲活<F0A7A2B2><EFBFBD>PDF<44>齿<EFBFBD><E9BDBF>𡝗𧒄嚗?
const cached = await cache.get(cacheKey);
if (cached) {
  return cached;  // <20>?<3F>湔𦻖餈𥪜<E9A488>嚗諹<E59A97><E8ABB9><EFBFBD>PI韐寧鍂
}

**憟賢<E6869F>**嚗?

  • <EFBFBD>?<3F><EFBFBD><E8B8B9><EFBFBD><EFBFBD>鍂DeepSeek API嚗<49>?.43/蝭<><E89DAD>
  • <EFBFBD>?<3F><EFBFBD><E6BB9A>笔漲敹恬<E695B9>隞?<3F><><EFBFBD><EFBFBD><EFBFBD>1ms嚗?
  • <EFBFBD>?憭𡁜<E686AD>靘见<E99D98>鈭怎<E988AD>摮?

*Redis<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

// <20>箸艶2嚗𡁏<E59A97><F0A1818F><EFBFBD><E6A183>劐遙<E58A90><EFBFBD>199蝭<39><E89DAD><EFBFBD><EFBFBD>閬?0-60<36><30><EFBFBD>嚗?
export async function startScreening(projectId) {
  // 1. <20>𥕦遣隞餃𦛚嚗<F0A69B9A><E59A97><EFBFBD><EFBFBD>霂瑟<E99C82>嚗?
  const task = await prisma.aslScreeningTask.create({...});
  
  // 2. <20><EFBFBD><E588B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59A97>甇亙<E79487><E4BA99><EFBFBD><EFBFBD>
  await jobQueue.push('asl:screening', {
    taskId: task.id,
    projectId,
    literatureIds: [1, 2, 3, ..., 199]
  });
  
  // 3. 蝡见朖餈𥪜<E9A488><EFBFBD><E59A97>蝡臬<E89DA1>憪贝蔭霂<E99C82>摨佗<E691A8>
  return { taskId: task.id, status: 'pending' };
}

// <20>𤾸蝱Worker憭<72><E686AD><EFBFBD><EFBFBD>
jobQueue.process('asl:screening', async (job) => {
  for (const id of job.data.literatureIds) {
    await processLiterature(id);
    await jobQueue.updateProgress(job.id, ...);
  }
});

**憟賢<E6869F>**嚗?

  • <EFBFBD>?隞餃𦛚<E9A483><F0A69B9A><EFBFBD><EFBFBD><EFBFBD>摰硺<E691B0><E7A1BA>滚鍳銝滢腺憭梧<E686AD>
  • <EFBFBD>?<3F><EFBFBD>隞餃𦛚隡睃<E99AA1>蝥?
  • <EFBFBD>?<3F><EFBFBD>隞餃𦛚<E9A483><EFBFBD>
  • <EFBFBD>?憭𡁜<E686AD>靘钅𡢿隞餃𦛚<E9A483><F0A69B9A><EFBFBD>

3.3 <20><><EFBFBD><EFBFBD><E887AC>啣笆瘥?

// ==================== Redis蝻枏<E89DBB> ====================
import Redis from 'ioredis';

const redis = new Redis({
  host: 'localhost',
  port: 6379
});

// <20><EFBFBD>蝻枏<E89DBB>
await redis.set('key', 'value', 'EX', 3600);

// 霂餃<E99C82>蝻枏<E89DBB>
const value = await redis.get('key');


// ==================== Redis<69><EFBFBD> ====================
import { Queue, Worker } from 'bullmq';

// <20>𥕦遣<F0A595A6><EFBFBD>
const queue = new Queue('asl:screening', {
  connection: {
    host: 'localhost',
    port: 6379
  }
});

// 瘛餃<E7989B>隞餃𦛚
await queue.add('screening', { projectId: 123 });

// <20>𥕦遣Worker憭<72><E686AD>隞餃𦛚
const worker = new Worker('asl:screening', async (job) => {
  // 憭<><E686AD>隞餃𦛚
  await processTask(job.data);
}, {
  connection: { host: 'localhost', port: 6379 }
});

**<2A>喲睸<E596B2>?*嚗?

  • <EFBFBD>?銝方<E98A9D><E696B9><EFBFBD>餈墧𦻖<E5A2A7><EFBFBD><EFBFBD>銝析edis摰硺<E691B0>
  • <EFBFBD>?<3F>臭誑<E887AD>峕𧒄雿輻鍂嚗<E98D82><E59A97>銝滚僕<E6BB9A><EFBFBD>
  • <EFBFBD>?BullMQ<4D><51><EFBFBD><EFBFBD><EFBFBD>甬oredis摰䂿緵<E482BF>?

4. <20>芰鍂Redis蝻枏<E89DBB><E69E8F><EFBFBD><EFBFBD>?

4.1 <20>臭誑皛∟雲<E2889F><E99BB2><EFBFBD>瘙?<3F>?

  1. LLM蝏𤘪<EFBFBD>蝻枏<EFBFBD> <20>?

    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>API靚<EFBFBD>
    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>鞉𧋦
    • <EFBFBD>𣂼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>笔漲
  2. Session蝞∠<EFBFBD> <20>?

    • 憭𡁜<EFBFBD>靘见<EFBFBD>鈭俟ession
    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>甇?
  3. *<EFBFBD>亙熒璉<EFBFBD><EFBFBD><EFBFBD>摮? <20>?

    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Excel
  4. <EFBFBD><EFBFBD>隞餃𦛚 <20>?

    • < 10蝘垍<E89D98>隞餃𦛚
    • <EFBFBD>湔𦻖<EFBFBD>沈TTP霂瑟<EFBFBD>銝剖<EFBFBD><EFBFBD>?

4.2 <20><EFBFBD>皛∟雲<E2889F><E99BB2><EFBFBD>瘙?<3F>?

  1. <EFBFBD>踵𧒄<EFBFBD>港遙<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>?

    <EFBFBD>箸艶嚗𡁶鍂<EFBFBD><EFBFBD>鈭?99蝭<39><E89DAD><EFBFBD><EFBFBD><E6A183><EFBFBD><E39A81><EFBFBD>閬?0-60<36><30><EFBFBD>嚗?
    
    憒<><E68692><EFBFBD>芰鍂Redis蝻枏<E89DBB>嚗?
    - 隞餃𦛚<E9A483><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>摮?<3F>?摰硺<E691B0><E7A1BA>滚鍳銝仃
    - <20><EFBFBD><E4ADBE><EFBFBD>銝剜鱏<E5899C><E9B18F><EFBFBD>?
    - <20><EFBFBD><E586BD><EFBFBD>隞餃𦛚瘨<F0A69B9A>
  2. 隞餃𦛚<EFBFBD><EFBFBD>蝞∠<EFBFBD> <20>?

    <EFBFBD>箸艶嚗?0銝芰鍂<E88AB0><EFBFBD><E79195><EFBFBD>鈭斗鸌<E69697>譍遙<E8AD8D>?
    
    憒<><E68692><EFBFBD>芰鍂Redis蝻枏<E89DBB>嚗?
    - <20><EFBFBD><E4ADBE><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD><E4BA99>滚𦛚嚗?
    - <20><EFBFBD><E4ADBE>𣂼<EFBFBD>撟嗅<E6929F>
    - <20>滚𦛚<E6BB9A>典虾<E585B8>質◤<E8B3AA><EFBFBD>
    
  3. 隞餃𦛚<EFBFBD><EFBFBD> <20>?

    <EFBFBD>箸艶嚗𡁏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仃韐?
    
    憒<><E68692><EFBFBD>芰鍂Redis蝻枏<E89DBB>嚗?
    - <20><EFBFBD><E4ADBE>芸𢆡<E88AB8><EFBFBD>
    - <20><><EFBFBD><EFBFBD><EFBFBD><E790BF><EFBFBD>鈭?
    
  4. *<EFBFBD><EFBFBD><EFBFBD>撘譍遙<EFBFBD><EFBFBD><EFBFBD>? <20>?

    <EFBFBD>箸艶嚗锭AE<EFBFBD>?銝芸<E98A9D>靘?
    
    憒<><E68692><EFBFBD>芰鍂Redis蝻枏<E89DBB>嚗?
    - <20><EFBFBD><E4ADBE><EFBFBD><E8AE9B>芯葵摰硺<E691B0><EFBFBD><E686AD><EFBFBD>芯葵隞餃𦛚
    - <20><EFBFBD><E888AA><EFBFBD><EFBFBD><E686AD>
    

4.3 摰鮋<E691B0>敶勗<E695B6><EFBFBD>

*<EFBFBD><EFBFBD><EFBFBD>芸鍳<EFBFBD>沖edis蝻枏<EFBFBD>嚗?

敶勗<EFBFBD>蝏游漲 <EFBFBD><EFBFBD> 霂湔<EFBFBD>
LLM<EFBFBD>鞉𧋦<EFBFBD><EFBFBD> <EFBFBD>?隡条<E99AA1> 蝻枏<EFBFBD><EFBFBD>賭葉嚗諹<EFBFBD><EFBFBD>?0-50%韐寧鍂
*憭𡁜<EFBFBD>靘𧢲𣈲<EFBFBD>? <EFBFBD>?隡条<E99AA1> 蝻枏<EFBFBD><EFBFBD>曹澈
*<EFBFBD>蹂遙<EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>𩤃<EFBFBD><><E98A9D>? 隞滨<EFBFBD>靘肽<EFBFBD>MemoryQueue
隞餃𦛚蝞∠<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>𩤃<EFBFBD><><E98A9D>? <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霂?
*蝟餌<EFBFBD><EFBFBD><EFBFBD>撅閙<EFBFBD>? <EFBFBD>椬 銝剔<E98A9D> <EFBFBD><EFBFBD>靘见虾隞伐<EFBFBD>憭𡁜<EFBFBD>靘𧢲<EFBFBD><EFBFBD><EFBFBD>

5. <20>舐鍂Redis<69><EFBFBD><E7AC94><EFBFBD>𤣰<EFBFBD>𠹺<EFBFBD>憌𡡞埯

5.1 <20><EFBFBD><E597A5><EFBFBD><EFBFBD> <20>

<EFBFBD><EFBFBD>1嚗帋遙<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

敶枏<EFBFBD>嚗㇈emoryQueue嚗㚁<EFBFBD>
- <20><EFBFBD><E586BD>𣂷漱<F0A382B7><EFBFBD>隞餃𦛚
- 摰硺<E691B0><E7A1BA>滚鍳 <20>?<3F>?隞餃𦛚銝W仃
- <20><EFBFBD><E586BD><EFBFBD><E99697><EFBFBD><EFBFBD>5-10%

<0A>寧鍂Redis<69><EFBFBD>嚗?
- 隞餃𦛚靽嘥<E99DBD><E598A5>沖edis
- 摰硺<E691B0><E7A1BA>滚鍳 <20>?<3F>?隞餃𦛚蝏抒賒
- <20><EFBFBD><E586BD><EFBFBD><E99697><EFBFBD><EFBFBD>< 1%

*<EFBFBD><EFBFBD>2嚗帋遙<EFBFBD><EFBFBD>霂?

敶枏<EFBFBD>嚗㇈emoryQueue嚗㚁<EFBFBD>
- LLM靚<4D>鍂憭梯揖 <20>?<3F>?隞餃𦛚<E9A483><F0A69B9A>扇銝箏仃韐?
- <20><><EFBFBD><EFBFBD><EFBFBD><E790BF><EFBFBD>鈭?

<0A>寧鍂Redis<69><EFBFBD>嚗?
- LLM靚<4D>鍂憭梯揖 <20>?<3F>?<3F>芸𢆡<E88AB8><EFBFBD>3甈?
- <20><><EFBFBD><E3BAAD><EFBFBD><EFBFBD>2蝘鉝<E89D98>?蝘鉝<E89D98>?蝘𡜐<E89D98>

<EFBFBD><EFBFBD>3嚗𡁜<EFBFBD><EFBFBD><EFBFBD>隞餃𦛚<EFBFBD><EFBFBD><EFBFBD>

敶枏<EFBFBD>嚗㇈emoryQueue嚗㚁<EFBFBD>
- 瘥譍葵摰硺<E691B0><E7A1BA><EFBFBD><EFBFBD><E686AD>隞餃𦛚
- <20><EFBFBD><E4ADBE><EFBFBD>

<0A>寧鍂Redis<69><EFBFBD>嚗?
- 憭帋葵Worker<65><EFBFBD>隞餃𦛚
- <20>芸𢆡韐蠘蝸<E8A098><E89DB8>﹛
- <20>𣂷葵Worker<65><72><EFBFBD><EFBFBD><E59A97>隞頟orker<65>亦恣

*<EFBFBD><EFBFBD>4嚗帋遙<EFBFBD><EFBFBD><EFBFBD>?

敶枏<EFBFBD>嚗㇈emoryQueue嚗㚁<EFBFBD>
- 隞餃𦛚<E9A483><EFBFBD><E59786><EFBFBD><E98A81><EFBFBD>銝?
- <20><EFBFBD><E4ADBE><EFBFBD><E4BAA6><EFBFBD>蟮隞餃𦛚

<0A>寧鍂Redis<69><EFBFBD>嚗?
- 隞餃𦛚<E9A483><F0A69B9A>蟮靽嘥<E99DBD>
- <20>臭誑<E887AD><EFBFBD>憭梯揖<E6A2AF><EFBFBD>
- 蝏蠘恣憭<E681A3><E686AD><EFBFBD>園鵭

5.2 憌𡡞埯<F0A1A19E><E59FAF><EFBFBD> <20>𩤃<EFBFBD>

憌𡡞埯1嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>椬 銝剔<E98A9D>

敶枏<EFBFBD>嚗?
- MemoryQueue嚗𡁶<E59A97><F0A181B6>𨰻<EFBFBD><F0A8B0BB><EFBFBD><EFBFBD><EFBFBD>圾
- 隞<><E99A9E><EFBFBD>𧶏<EFBFBD>~200銵?

<0A>嫣蛹BullMQ嚗?
- <20><><EFBFBD>郎銋泎ullMQ API
- 隞<><E99A9E><EFBFBD>𧶏<EFBFBD>~500銵?
- <20><><EFBFBD><E996AC>蝵娠orker

蝻栞圾嚗?

  • <EFBFBD>?BullMQ<4D><51>﹝摰<EFB99D><E691B0>
  • <EFBFBD>?蝷曉躹瘣餉<E798A3>嚗𠃑itHub 15k+ stars嚗?
  • <EFBFBD>?<3F>睲賑撌脩<E6928C>摰㕑<E691B0><EFBFBD><E988AD>韏?

*憌𡡞埯2嚗帋<EFBFBD>韏餸edis蝔喳<EFBFBD><EFBFBD>? <20>椬 銝剔<E98A9D>

<EFBFBD>箸艶嚗鑹edis<EFBFBD><EFBFBD><EFBFBD>
- Redis蝻枏<E89DBB>嚗𡁜虾隞仿<E99A9E>蝥批<E89DA5><E689B9><EFBFBD><EFBFBD>
- Redis<69><EFBFBD>嚗𡁏<E59A97>瘜閖<E7989C>蝥改<E89DA5><E694B9><EFBFBD><EFBFBD><EFBFBD><E29786><EFBFBD><EFBFBD><EFBFBD>

蝻栞圾嚗?

  • <EFBFBD>?<3F>刻揚銋啁<E98A8B><E59581><EFBFBD><E888AB>舐鍂<E88890>㇌edis嚗?9.95%嚗?
  • <EFBFBD>?銝颱<E98A9D><E9A2B1>芸𢆡<E88AB8><F0A286A1>
  • <EFBFBD>?摰鮋<E691B0>憌𡡞埯敺<E59FAF><E695BA>

*憌𡡞埯3嚗朞<EFBFBD>霂閖𠗕摨血<EFBFBD><EFBFBD>? <20>叚 雿?

敶枏<EFBFBD>嚗?
- console.log() <20>喳虾
- 隞餃𦛚<E9A483><EFBFBD>摮䀝葉

<0A>嫣蛹BullMQ嚗?
- <20><><EFBFBD><EFBFBD>苄edis<69>唳旿
- <20><><EFBFBD>鍂BullBoard嚗<64>虾閫<E899BE><E996AB>撌亙<E6928C>嚗?

蝻栞圾嚗?

  • <EFBFBD>?BullBoard<72>𣂷<EFBFBD>Web UI
  • <EFBFBD>?<3F>臭誑<E887AD><EFBFBD>隞餃𦛚<E9A483><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>霂閙活<E99699>?
  • <EFBFBD>?<3F><EFBFBD><E4BA99>渲祕蝏?

*憌𡡞埯4嚗𡁜<EFBFBD>摮睃<EFBFBD><EFBFBD>? <20>叚 雿?

<EFBFBD><EFBFBD><EFBFBD>嚗鑹edis<EFBFBD><EFBFBD>隡𡁜<EFBFBD><EFBFBD><EFBFBD>憭𡁜<EFBFBD>摮矋<EFBFBD>

摰鮋<E691B0>嚗?
- <20>蓥葵隞餃𦛚<E9A483>唳旿嚗鰺1KB
- 100銝芸僎<E88AB8>睲遙<E79DB2><EFBFBD>100KB
- 1000銝芯遙<E88AAF><EFBFBD><E288AA><EFBFBD>1MB
- 撖?56MB Redis敶勗<E695B6><EFBFBD><E695BA>

5.3 憌𡡞埯<F0A1A19E>拚猐

憌𡡞埯 銝仿<EFBFBD><EFBFBD>? <EFBFBD><EFBFBD> 蝻栞圾<EFBFBD>曉漲 撱箄悅
*憓𧼮<EFBFBD>憭齿<EFBFBD>摨? <EFBFBD>椬 銝? <EFBFBD>𣞁 擃? <EFBFBD>?<3F>? <EFBFBD>𣂷<EFBFBD><EFBFBD>寡悌<EFBFBD><EFBFBD>
Redis靘肽<EFBFBD> <EFBFBD>𣞁 擃? <EFBFBD>叚 雿? <EFBFBD>?<3F>? 擃睃虾<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>圈𠗕 <EFBFBD>叚 雿? <EFBFBD>椬 銝? <EFBFBD>?<3F>? 雿輻鍂BullBoard
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>删鍂 <EFBFBD>叚 雿? <EFBFBD>叚 雿? <EFBFBD>?<3F>? <EFBFBD>烐綉<EFBFBD>喳虾

蝏栞捏嚗𡁻<EFBFBD><EFBFBD>拙虾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憭找<EFBFBD>憌𡡞埯


6. <20><EFBFBD><E588BB><EFBFBD>

6.1 皜鞱<E79A9C>撘誩<E69298><E8AAA9><EFBFBD><E8B89D><EFBFBD>嚗争<E59A97>

<EFBFBD>嗆挾1嚗<EFBFBD>𧋦<EFBFBD><EFBFBD>: <20>舐鍂Redis蝻枏<E89DBB>
<0A><EFBFBD> <20><EFBFBD>嚗朞圾<E69C9E>蚯LM<4C>鞉𧋦<E99E89><EFBFBD>
<0A><EFBFBD> 撌乩<E6928C><E4B9A9>𧶏<EFBFBD>2憭?
<0A><EFBFBD> 憌𡡞埯嚗帋<E59A97><EFBFBD><E59A97><EFBFBD>滨漣<E6BBA8><EFBFBD>嚗?
<0A><EFBFBD> <20><EFBFBD>嚗朞<E59A97><E69C9E>?0-50% API韐寧鍂

<0A>嗆挾2嚗<32><E59A97><EFBFBD><EFBFBD>: <20>舐鍂Redis<69><EFBFBD>
<0A><EFBFBD> <20><EFBFBD>嚗朞圾<E69C9E>喲鵭隞餃𦛚<E9A483><EFBFBD><E888AB>?
<0A><EFBFBD> 撌乩<E6928C><E4B9A9>𧶏<EFBFBD>3憭?
<0A><EFBFBD> 憌𡡞埯嚗帋葉嚗<E89189><E59A97><EFBFBD>舀綉嚗?
<0A><EFBFBD> <20><EFBFBD>嚗帋遙<E5B88B>∩腺憭梁<E686AD><E6A281><EFBFBD>10<31>?

<0A>嗆挾3嚗<33>𧊋<EFBFBD><EFBFBD>: 隡睃<E99AA1>銝𡒊<E98A9D><F0A1928A>?
<0A><EFBFBD> BullBoard<72><EFBFBD><E888AA>?
<0A><EFBFBD> 隞餃𦛚隡睃<E99AA1>蝥?
<0A><EFBFBD> <20><EFBFBD><E689AF>烐綉
<0A><EFBFBD> <20>𡃏郎<F0A1838F><EFBFBD>

6.2 霂衣<E99C82>摰墧鴌霈<E99C88>

<EFBFBD>嗆挾1嚗鑹edis蝻枏<EFBFBD><EFBFBD>𧋦<EFBFBD><EFBFBD>

Day 1-2嚗𡁜<E59A97><F0A1819C>訌edisCacheAdapter

# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E78DA2>04-Redis<69><EFBFBD><EFBFBD><E683A9>質恣<E8B3AA>?md
# Phase 1-3

<0A>?摰㕑<E691B0>ioredis
<0A>?摰䂿緵RedisCacheAdapter
<0A>?瘛餃<E7989B><E9A483>滨漣蝑𣇉裦
<0A>?<3F>砍𧑐瘚贝<E7989A>

**撉峕𤣰<E5B395><F0A4A3B0><EFBFBD>**嚗?

<EFBFBD>?HealthCheckService蝻枏<E89DBB><E69E8F>賭葉
<0A>?LLM12FieldsService蝻枏<E89DBB><E69E8F>賭葉
<0A>?摰硺<E691B0><E7A1BA>滚鍳蝻枏<E89DBB>銝滢腺憭?
<0A>?Redis<69><73><EFBFBD>蝟餌<E89D9F>隞滚虾<E6BB9A><EFBFBD><E58981>滨漣嚗?

<EFBFBD>嗆挾2嚗鑹edis<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

Day 1嚗𡁜<E59A97><F0A1819C>訌edisQueue

// <20>𥕦遣嚗颹ackend/src/common/jobs/RedisQueue.ts
import { Queue, Worker } from 'bullmq';

export class RedisQueue implements JobQueue {
  // ... 摰䂿緵
}

*Day 2嚗朞<E59A97>蝘颱<E89D98><E9A2B1>∩誨<E288A9>?

// 靽格㺿嚗窃creeningService.ts
// 隞𠬍<E99A9E>
processLiteraturesInBackground(task.id, ...);

// <20>嫣蛹嚗?
await jobQueue.push('asl:screening', {
  taskId: task.id,
  projectId,
  literatures
});

Day 3嚗𡁏<E59A97>霂蓥<E99C82>銝羓瑪

<EFBFBD>?<3F><EFBFBD>瘚贝<E7989A>
<0A>?<3F><><EFBFBD>瘚贝<E7989A>
<0A>?<3F><EFBFBD>瘚贝<E7989A>
<0A>?<3F><><EFBFBD>璅⊥<E79285>瘚贝<E7989A>
<0A>?<3F>啣漲<E595A3><EFBFBD>

6.3 <20><>撠𤩺㺿<F0A4A9BA>冽䲮獢<E4B2AE><E78DA2><EFBFBD><E68692><EFBFBD><E99F8F><EFBFBD><EFBFBD>嚗?

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>冽𧒄<EFBFBD><EFBFBD>撱箄悅嚗?

隡睃<EFBFBD>蝥?嚗<><E59A97>憿鳴<E686BF>嚗鑹edis蝻枏<E89DBB>
- 閫<><E996AB>LLM<4C>鞉𧋦<E99E89><EFBFBD>
- 撌乩<E6928C><E4B9A9>𧶏<EFBFBD>2憭?

隡睃<E99AA1>蝥?嚗<><EFBFBD><EFBFBD>嚗鑹edis<69><EFBFBD>
- <20><>𧒄靽脲<E99DBD>MemoryQueue
- 霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD>箏𦛚
- 蝑厩鍂<E58EA9><EFBFBD><E79285><E288AA><EFBFBD><E8B8B9>齿㺿<E9BDBF>?

**<2A>斗鱏<E69697><E9B18F><EFBFBD>**嚗?

<EFBFBD><EFBFBD>皛∟雲隞乩<EFBFBD><EFBFBD>∩辣嚗<EFBFBD>虾隞交<EFBFBD>蝻𣫮edis<EFBFBD><EFBFBD>嚗?
<0A>?<3F><EFBFBD><E586BD>?< 20
<0A>?SAE<41><EFBFBD>1銝芸<E98A9D>靘?
<0A>?<3F><EFBFBD>隞餃𦛚銝漤<E98A9D><EFBFBD><E89D9C>瘥誩予 < 5銝迎<E98A9D>
<0A>?<3F>臭誑<E887AD><EFBFBD><E4BA99><EFBFBD>隞餃𦛚銝<0A><EFBFBD><EFBFBD>遣霈桀偷敹怠鍳<E680A0>沖edis<69><EFBFBD>

6.4 銝箔<E98A9D>銋㇂ullMQ撌脩<E6928C>摰㕑<E691B0><EFBFBD>𧊋雿輻鍂嚗?

**<2A><EFBFBD><E586BD><EFBFBD>**嚗?

  1. <EFBFBD>雿輻鍂雿<EFBFBD>𧊋摰墧鴌嚗𡁜<EFBFBD><EFBFBD>烐𧒄霈<EFBFBD><EFBFBD>步ullMQ嚗<EFBFBD><EFBFBD>摰㕑<EFBFBD><EFBFBD><EFBFBD>韏?
  2. **瘚贝<E7989A><EFBFBD><E9A488><EFBFBD>芸鍳<E88AB8>?*嚗𡁜虾<F0A1819C>賢銁瘚贝<E7989A><E8B49D><EFBFBD>撉諹<E69289>餈?
  3. **靘肽<E99D98>隡𣳇<E99AA1>?*嚗𡁜<E59A97>隞硋<E99A9E>靘肽<E99D98><EFBFBD>ullMQ

撱箄悅嚗?

  • <EFBFBD>?靽萘<E99DBD>BullMQ靘肽<E99D98><EFBFBD>歇蝏誩<E89D8F><EFBFBD><E98B86>嚗?
  • <EFBFBD>?<3F>券𧫴畾?<3F>嗥凒<E597A5>乩蝙<E4B9A9><EFBFBD><E58981>𣳇<EFBFBD><F0A3B387>齿鰵摰㕑<E691B0>嚗?
  • <EFBFBD>?憒<><E68692><EFBFBD><EFBFBD>𧒄銝滨鍂嚗䔶<E59A97>銝滨鍂<E6BBA8>𣳇膄嚗<E88684><E59A97>敶勗<E695B6><E58B97><EFBFBD>嚗?

7. 撣貉<E692A3><E8B289><EFBFBD> FAQ

Q1嚗鑹edis蝻枏<EFBFBD><EFBFBD>朙edis<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嗡蝙<EFBFBD><EFBFBD>嚗?

A1嚗𡁜虾隞伐<EFBFBD><EFBFBD>賑雿輻鍂<EFBFBD><EFBFBD>銝析edis摰硺<EFBFBD>嚗䔶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣬚<EFBFBD><EFBFBD>唳旿蝏𤘪<EFBFBD><EFBFBD>?

Redis摰硺<EFBFBD>嚗?56MB嚗?
<0A><EFBFBD> 蝻枏<E89DBB><E69E8F>唳旿嚗𠄎tring嚗㚁<E59A97><E39A81>删鍂 ~50MB
<0A><EFBFBD> <20><EFBFBD><E7AC94>唳旿嚗𡿨ist嚗㚁<E59A97><E39A81>删鍂 ~10MB
------------------------------------
<0A>餉恣嚗鰺60MB / 256MB = 23% 雿輻鍂<E8BCBB>?

Q2嚗帋<EFBFBD><EFBFBD>沖edis<EFBFBD><EFBFBD>嚗𣬚鍂<EFBFBD>唳旿摨㯄<EFBFBD><EFBFBD>堒虾隞亙<EFBFBD>嚗?

A2嚗𡁜虾隞乩<EFBFBD>銝齿綫<EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD> 隡睃飵 <EFBFBD><EFBFBD>
Redis<EFBFBD><EFBFBD> 敹恬<EFBFBD>< 1ms嚗剹<E59A97><E589B9><EFBFBD><EFBFBD><EFBFBD><E8B3A2>? <EFBFBD><EFBFBD><EFBFBD>edis
*<EFBFBD>唳旿摨㯄<EFBFBD><EFBFBD>? 銝漤<EFBFBD><EFBFBD><EFBFBD>憭碶<EFBFBD>韏? <EFBFBD><EFBFBD>> 10ms嚗剹<E59A97><E589B9><EFBFBD><EFBFBD><EFBFBD><E8B39C>?

<EFBFBD>典歇蝏讛揚銋唬<EFBFBD>Redis嚗<EFBFBD>遣霈桃凒<EFBFBD>亦鍂Redis<EFBFBD><EFBFBD><EFBFBD>?

Q3嚗𡁜<EFBFBD><EFBFBD>𨅯蘨<EFBFBD>舐鍂Redis蝻枏<EFBFBD>嚗𣬚頂蝏煺<EFBFBD><EFBFBD>厰䔮憸睃<EFBFBD>嚗?

A3嚗𡁶<EFBFBD><EFBFBD><EFBFBD>銝滢<EFBFBD><EFBFBD>匧之<EFBFBD><EFBFBD>嚗䔶<EFBFBD>摮睃銁憌𡡞埯<EFBFBD>?

<EFBFBD>?<3F>臭誑甇<E8AA91>虜餈鞱<E9A488>嚗?
- LLM<4C>鞉𧋦<E99E89><EFBFBD> <20>?
- 憭𡁜<E686AD>靘讠<E99D98>摮睃<E691AE>鈭?<3F>?

<0A>𩤃<EFBFBD> 瞏𨅯銁憌𡡞埯嚗?
- <20>蹂遙<E8B982><E288AA>賭腺憭梧<E686AD>摰硺<E691B0><E7A1BA>滚鍳嚗?
- <20><EFBFBD><E4ADBE><EFBFBD>憭梯揖隞餃𦛚
- <20><EFBFBD>雿㯄<E99BBF>銝滢蔔

Q4嚗𡁜鍳<EFBFBD>沖edis<EFBFBD><EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD>賢炏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>衽emoryQueue嚗?

A4嚗𡁜虾隞伐<EFBFBD>靽格㺿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>喳虾<EFBFBD>?

# <20><><EFBFBD>訌edis<69><EFBFBD>
QUEUE_TYPE=redis

# <20><EFBFBD><E9AE8B><EFBFBD><EFBFBD>摮㗛<E691AE><E3979B>?
QUEUE_TYPE=memory

<EFBFBD><EFBFBD>𧶏<EFBFBD>Redis銝剔<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂷遙<EFBFBD><EFBFBD><EFBFBD>?

Q5嚗鋳ullMQ<EFBFBD>曉郎<EFBFBD><EFBFBD>

A5嚗帋<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>API<EFBFBD><EFBFBD>5銝芥<EFBFBD>?

// 1. <20>𥕦遣<F0A595A6><EFBFBD>
const queue = new Queue('task');

// 2. 瘛餃<E7989B>隞餃𦛚
await queue.add('job', { data });

// 3. <20>𥕦遣Worker
const worker = new Worker('task', handler);

// 4. <20>穃𨯬鈭衤辣
worker.on('completed', ...);
worker.on('failed', ...);

// 5. <20>亥砭隞餃𦛚
const job = await queue.getJob(jobId);

<EFBFBD>恣摮虫<EFBFBD><EFBFBD>園𡢿嚗?*<2A>𠰴予**


8. <20><EFBFBD>

8.1 <20><EFBFBD><EFBFBD><E996AC>

  1. Redis蝻枏<EFBFBD> <20>?Redis<69><EFBFBD>

    • <EFBFBD>賣糓雿輻鍂<EFBFBD><EFBFBD>銝析edis摰硺<EFBFBD>
    • <EFBFBD>芣糓雿輻鍂<EFBFBD><EFBFBD>銝滚<EFBFBD>
  2. <EFBFBD><EFBFBD>蝟餌<EFBFBD><EFBFBD>啁𠶖

    • BullMQ撌脣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>芯蝙<EFBFBD>?
    • 敶枏<EFBFBD><EFBFBD>決emoryQueue嚗<EFBFBD><EFBFBD>𥪜<EFBFBD>摮㗛<EFBFBD><EFBFBD><EFBFBD>
    • <EFBFBD><EFBFBD><EFBFBD>㺿<EFBFBD><EFBFBD><EFBFBD>賢鍳<EFBFBD>沖edis<EFBFBD><EFBFBD>
  3. <EFBFBD><EFBFBD><EFBFBD><EFBFBD>

    • <EFBFBD>?<3F><><EFBFBD>沖edis蝻枏<E89DBB><EFBFBD>𧋦<EFBFBD><EFBFBD>2憭抬<E686AD>
    • <EFBFBD>?<3F>滚鍳<E6BB9A>沖edis<69><EFBFBD><EFBFBD><E59A97><EFBFBD><EFBFBD>3憭抬<E686AD>
    • <EFBFBD>?皜鞱<E79A9C>撘誩<E69298><E8AAA9><EFBFBD><E8B89D><EFBFBD>憌𡡞埯
  4. *<EFBFBD>芰鍂Redis蝻枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

    • <EFBFBD>?<3F>臭誑閫<E8AA91><E996AB>LLM<4C>鞉𧋦<E99E89><EFBFBD>
    • <EFBFBD>𩤃<EFBFBD> <20>蹂遙<E8B982><E288AA><EFBFBD><EFBFBD><E689BE><EFBFBD><E58EB0>?
    • <EFBFBD><EFBFBD> 撱箄悅嚗𡁏覔<F0A1818F>桃鍂<E6A183><EFBFBD><E79285>摰𡁏糓<F0A1818F>血鍳<E8A180><EFBFBD><E588B8>?
  5. *Redis<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

    • <EFBFBD>椬 憓𧼮<E68693>憭齿<E686AD>摨佗<E691A8><EFBFBD><EFBFBD><EFBFBD>
    • <EFBFBD>叚 靘肽<E99D98>Redis蝔喳<E89D94><E596B3><EFBFBD>擃睃虾<E79D83><EFBFBD>99.95%嚗?
    • <EFBFBD>?<3F><EFBFBD> > 憌𡡞埯

8.2 <20><EFBFBD>撱箄悅

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝟餌<EFBFBD>皛∟雲隞乩<EFBFBD><EFBFBD>∩辣銋衤<EFBFBD><EFBFBD>遣霈桀偷敹怠鍳<EFBFBD>沖edis<EFBFBD><EFBFBD>嚗?

<EFBFBD>?<3F><EFBFBD><E586BD>?> 20
<0A>?SAE摰硺<E691B0><E7A1BA>?> 1
<0A>?<3F><EFBFBD>隞餃𦛚憸𤑳<E686B8><EFBFBD><E59A97>憭?> 5銝迎<E98A9D>
<0A>?隞餃𦛚<E9A483>園鵭 > 10<31><30><EFBFBD>
<0A>?<3F><EFBFBD><E586BD><EFBFBD>其遙<E585B6>∩腺憭?

*<EFBFBD><EFBFBD><EFBFBD>虾隞亙<EFBFBD><EFBFBD>舐鍂Redis蝻枏<EFBFBD>嚗屸<EFBFBD><EFBFBD><EFBFBD>蝻瓐<EFBFBD>?


<EFBFBD><EFBFBD>﹝蝏湔擪<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>臬𣪧<E887AC>? <EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD> 2025-12-12
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹝嚗? [Redis<69><EFBFBD><EFBFBD><E683A9>質恣<E8B3AA>哋(./04-Redis<69><EFBFBD><EFBFBD><E683A9>質恣<E8B3AA>?md)