@@ -175,6 +175,124 @@ <h1 class="site-title">SMULET's BLOG</h1>
175175
176176
177177
178+ < div class ="post-block ">
179+
180+
181+
182+ < article itemscope itemtype ="http://schema.org/Article " class ="post-content " lang ="">
183+ < link itemprop ="mainEntityOfPage " href ="http://simuleite.github.io/ComputerScience/%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/Redis%E4%BD%BF%E7%94%A8/ ">
184+
185+ < span hidden itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
186+ < meta itemprop ="image " content ="/images/avatar.gif ">
187+ < meta itemprop ="name " content ="SIMULEITE ">
188+ </ span >
189+
190+ < span hidden itemprop ="publisher " itemscope itemtype ="http://schema.org/Organization ">
191+ < meta itemprop ="name " content ="SMULET's BLOG ">
192+ < meta itemprop ="description " content ="">
193+ </ span >
194+
195+ < span hidden itemprop ="post " itemscope itemtype ="http://schema.org/CreativeWork ">
196+ < meta itemprop ="name " content ="undefined | SMULET's BLOG ">
197+ < meta itemprop ="description " content ="">
198+ </ span >
199+ < header class ="post-header ">
200+ < h2 class ="post-title " itemprop ="name headline ">
201+ < a href ="/ComputerScience/%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/Redis%E4%BD%BF%E7%94%A8/ " class ="post-title-link " itemprop ="url "> Redis使用</ a >
202+ </ h2 >
203+
204+ < div class ="post-meta-container ">
205+ < div class ="post-meta ">
206+ < span class ="post-meta-item ">
207+ < span class ="post-meta-item-icon ">
208+ < i class ="far fa-calendar "> </ i >
209+ </ span >
210+ < span class ="post-meta-item-text "> 发表于</ span >
211+
212+ < time title ="创建时间:2024-10-27 00:00:00 " itemprop ="dateCreated datePublished " datetime ="2024-10-27T00:00:00+08:00 "> 2024-10-27</ time >
213+ </ span >
214+ < span class ="post-meta-item ">
215+ < span class ="post-meta-item-icon ">
216+ < i class ="far fa-calendar-check "> </ i >
217+ </ span >
218+ < span class ="post-meta-item-text "> 更新于</ span >
219+ < time title ="修改时间:2025-04-09 20:16:11 " itemprop ="dateModified " datetime ="2025-04-09T20:16:11+08:00 "> 2025-04-09</ time >
220+ </ span >
221+
222+
223+ </ div >
224+
225+ </ div >
226+ </ header >
227+
228+
229+
230+
231+ < div class ="post-body " itemprop ="articleBody ">
232+ < h1 id ="基本操作 "> < a class ="markdownIt-Anchor " href ="#基本操作 "> </ a > 基本操作</ h1 >
233+ < h2 id ="general "> < a class ="markdownIt-Anchor " href ="#general "> </ a > General</ h2 >
234+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> # 返回给定模式的keys</ span > < br > < span class ="line "> KEYS patter</ span > < br > < span class ="line "> KEYS * # 返回全部</ span > < br > < span class ="line "> KEYS set* # 返回set开头的keys</ span > < br > < span class ="line "> EXISTS key</ span > < br > < span class ="line "> TYPE key</ span > < br > < span class ="line "> DEL key</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
235+ < h2 id ="string "> < a class ="markdownIt-Anchor " href ="#string "> </ a > String</ h2 >
236+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> SET key value</ span > < br > < span class ="line "> GET key</ span > < br > < span class ="line "> # Set Extend Time</ span > < br > < span class ="line "> SETEX key seconds value</ span > < br > < span class ="line "> # Set When Key Not Exist</ span > < br > < span class ="line "> SETNX key value</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
237+ < h2 id ="hash "> < a class ="markdownIt-Anchor " href ="#hash "> </ a > Hash</ h2 >
238+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> HSET key field value</ span > < br > < span class ="line "> HGET key field</ span > < br > < span class ="line "> HDEL key field</ span > < br > < span class ="line "> # Get All Fields</ span > < br > < span class ="line "> HKEYS key</ span > < br > < span class ="line "> # Get All Values</ span > < br > < span class ="line "> HVALS key</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
239+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> flowchart LR</ span > < br > < span class ="line "> key[key]</ span > < br > < span class ="line "> item[</ span > < br > < span class ="line "> field1: value1</ span > < br > < span class ="line "> field2: value2</ span > < br > < span class ="line "> ]</ span > < br > < span class ="line "> key --> item</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
240+ < h2 id ="list "> < a class ="markdownIt-Anchor " href ="#list "> </ a > List</ h2 >
241+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> LPUSH key value1 value2</ span > < br > < span class ="line "> # Get Key From Start To Stop</ span > < br > < span class ="line "> LRANGE key start stop</ span > < br > < span class ="line "> # Right POP</ span > < br > < span class ="line "> RPOP key</ span > < br > < span class ="line "> # List Length</ span > < br > < span class ="line "> LLEN key</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
242+ < h3 id ="典型场景 "> < a class ="markdownIt-Anchor " href ="#典型场景 "> </ a > 典型场景</ h3 >
243+ < h4 id ="栈 "> < a class ="markdownIt-Anchor " href ="#栈 "> </ a > 栈</ h4 >
244+ < h4 id ="订阅消息 "> < a class ="markdownIt-Anchor " href ="#订阅消息 "> </ a > 订阅消息</ h4 >
245+ < p > 队列,先来后到</ p >
246+ < ul >
247+ < li > 如微信、微博订阅消息</ li >
248+ < li > 阻塞队列< code > B<L|R>POP</ code > ,队列为空就等待</ li >
249+ </ ul >
250+ < h2 id ="set "> < a class ="markdownIt-Anchor " href ="#set "> </ a > Set</ h2 >
251+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> SADD key mem1 mem2</ span > < br > < span class ="line "> SMEMBERS key</ span > < br > < span class ="line "> # Set Size</ span > < br > < span class ="line "> SCARD key</ span > < br > < span class ="line "> SINTER key1 key2</ span > < br > < span class ="line "> SUNION key1 key2</ span > < br > < span class ="line "> # Delete</ span > < br > < span class ="line "> SREM key mem1 mem2</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
252+ < h3 id ="典型场景-2 "> < a class ="markdownIt-Anchor " href ="#典型场景-2 "> </ a > 典型场景</ h3 >
253+ < h4 id ="抽奖 "> < a class ="markdownIt-Anchor " href ="#抽奖 "> </ a > 抽奖</ h4 >
254+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> SADD lottery {user_id}</ span > < br > < span class ="line "> SMEMBERS lottery</ span > < br > < span class ="line "> # 开奖(适用于单个奖品)</ span > < br > < span class ="line "> SRANDMEMBER lottery {drawing_count}</ span > < br > < span class ="line "> # 开奖并删除(适用于多项奖品,不重复得奖)</ span > < br > < span class ="line "> SPOP lottery {drawing_count}</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
255+ < h4 id ="点赞-收藏-标签 "> < a class ="markdownIt-Anchor " href ="#点赞-收藏-标签 "> </ a > 点赞、收藏、标签</ h4 >
256+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> # 点赞</ span > < br > < span class ="line "> SADD like:{msg_id} {user_id}</ span > < br > < span class ="line "> # 取消</ span > < br > < span class ="line "> SREM like:{msg_id} {user_id}</ span > < br > < span class ="line "> # 用户是否点赞</ span > < br > < span class ="line "> SISMEMBER like:{msg_id} {user_id}</ span > < br > < span class ="line "> # 点赞用户列表</ span > < br > < span class ="line "> SMEMBERS like:{msg_id}</ span > < br > < span class ="line "> # 点赞用户数</ span > < br > < span class ="line "> SCARD like:{msg_id}</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
257+ < h4 id ="关注-商品筛选 "> < a class ="markdownIt-Anchor " href ="#关注-商品筛选 "> </ a > 关注、商品筛选</ h4 >
258+ < p > 利用集合特性运算</ p >
259+ < ul >
260+ < li > 如共同关注、推荐关注</ li >
261+ < li > 商品筛选</ li >
262+ </ ul >
263+ < h2 id ="sorted-set-zset "> < a class ="markdownIt-Anchor " href ="#sorted-set-zset "> </ a > Sorted Set / ZSet</ h2 >
264+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> ZADD key score1 mem1 score2 mem2</ span > < br > < span class ="line "> # Show List</ span > < br > < span class ="line "> ZRANGE key start stop (WITHSCORES)</ span > < br > < span class ="line "> # Increse Member</ span > < br > < span class ="line "> ZINCRBY key increment member</ span > < br > < span class ="line "> ZREM key mem1 mem2</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
265+ < h3 id ="典型场景-3 "> < a class ="markdownIt-Anchor " href ="#典型场景-3 "> </ a > 典型场景</ h3 >
266+ < h4 id ="日月年热点排行榜 "> < a class ="markdownIt-Anchor " href ="#日月年热点排行榜 "> </ a > 日/月/年热点排行榜</ h4 >
267+ < figure class ="highlight plaintext "> < table > < tr > < td class ="code "> < pre > < span class ="line "> # 记录浏览量</ span > < br > < span class ="line "> ZINCRBY hotNews:{date} 1 {news_id}</ span > < br > < span class ="line "> # Top 10</ span > < br > < span class ="line "> ZREVRANGE hotNews:{date} 0 9 WITHSCORES</ span > < br > < span class ="line "> # Recent 7 days</ span > < br > < span class ="line "> ZUNIONSTORE hotNews:{start_date}-{end_date} 0 9 WITHSCORES</ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
268+ <!--noindex-->
269+ < div class ="post-button ">
270+ < a class ="btn " href ="/ComputerScience/%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/Redis%E4%BD%BF%E7%94%A8/#more " rel ="contents ">
271+ 阅读全文 »
272+ </ a >
273+ </ div >
274+ <!--/noindex-->
275+
276+
277+ </ div >
278+
279+
280+
281+
282+
283+ < footer class ="post-footer ">
284+ < div class ="post-eof "> </ div >
285+
286+ </ footer >
287+ </ article >
288+ </ div >
289+
290+
291+
292+
293+
294+
295+
178296< div class ="post-block ">
179297
180298
@@ -1049,109 +1167,6 @@ <h2 id="jwt退出登录"><a class="markdownIt-Anchor" href="#jwt退出登录"></
10491167
10501168
10511169
1052-
1053-
1054-
1055- < div class ="post-block ">
1056-
1057-
1058-
1059- < article itemscope itemtype ="http://schema.org/Article " class ="post-content " lang ="">
1060- < link itemprop ="mainEntityOfPage " href ="http://simuleite.github.io/ComputerScience/%E7%9F%A5%E8%AF%86/Computer%20Organization&Design%E5%AD%A6%E4%B9%A0%E8%AE%B0%E5%BD%95/ ">
1061-
1062- < span hidden itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
1063- < meta itemprop ="image " content ="/images/avatar.gif ">
1064- < meta itemprop ="name " content ="SIMULEITE ">
1065- </ span >
1066-
1067- < span hidden itemprop ="publisher " itemscope itemtype ="http://schema.org/Organization ">
1068- < meta itemprop ="name " content ="SMULET's BLOG ">
1069- < meta itemprop ="description " content ="">
1070- </ span >
1071-
1072- < span hidden itemprop ="post " itemscope itemtype ="http://schema.org/CreativeWork ">
1073- < meta itemprop ="name " content ="undefined | SMULET's BLOG ">
1074- < meta itemprop ="description " content ="">
1075- </ span >
1076- < header class ="post-header ">
1077- < h2 class ="post-title " itemprop ="name headline ">
1078- < a href ="/ComputerScience/%E7%9F%A5%E8%AF%86/Computer%20Organization&Design%E5%AD%A6%E4%B9%A0%E8%AE%B0%E5%BD%95/ " class ="post-title-link " itemprop ="url "> Computer Organization&Design学习记录</ a >
1079- </ h2 >
1080-
1081- < div class ="post-meta-container ">
1082- < div class ="post-meta ">
1083- < span class ="post-meta-item ">
1084- < span class ="post-meta-item-icon ">
1085- < i class ="far fa-calendar "> </ i >
1086- </ span >
1087- < span class ="post-meta-item-text "> 发表于</ span >
1088-
1089- < time title ="创建时间:2024-06-08 00:00:00 " itemprop ="dateCreated datePublished " datetime ="2024-06-08T00:00:00+08:00 "> 2024-06-08</ time >
1090- </ span >
1091- < span class ="post-meta-item ">
1092- < span class ="post-meta-item-icon ">
1093- < i class ="far fa-calendar-check "> </ i >
1094- </ span >
1095- < span class ="post-meta-item-text "> 更新于</ span >
1096- < time title ="修改时间:2025-03-15 13:56:41 " itemprop ="dateModified " datetime ="2025-03-15T13:56:41+08:00 "> 2025-03-15</ time >
1097- </ span >
1098-
1099-
1100- </ div >
1101-
1102- </ div >
1103- </ header >
1104-
1105-
1106-
1107-
1108- < div class ="post-body " itemprop ="articleBody ">
1109- < h1 id ="chapter2-指令计算机的语言 "> < a class ="markdownIt-Anchor " href ="#chapter2-指令计算机的语言 "> </ a > Chapter2 指令:计算机的语言</ h1 >
1110- < p > 本章将介绍MIPS汇编语言指令。</ p >
1111- < h2 id ="三条设计原则 "> < a class ="markdownIt-Anchor " href ="#三条设计原则 "> </ a > 三条设计原则</ h2 >
1112- < ol >
1113- < li > 简单源于规整 Simplicity favors regularity.</ li >
1114- < li > 越小越快 Smaller is faster.</ li >
1115- < li > 优秀的设计需要适宜的折中方案 Good design demands good compromises.</ li >
1116- </ ol >
1117- < h2 id ="22-硬件的操作与操作数 "> < a class ="markdownIt-Anchor " href ="#22-硬件的操作与操作数 "> </ a > 2.2 硬件的操作与操作数</ h2 >
1118- < h3 id ="规整 "> < a class ="markdownIt-Anchor " href ="#规整 "> </ a > 规整</ h3 >
1119- < p > < code > add a, b, c // a = b + c</ code > MIPS汇编语言使用这样的固定记法。< br />
1120- 每条MIPS算术指令只执行1个操作,仅有3个变量。</ p >
1121- < h3 id ="操作数必须来自寄存器 "> < a class ="markdownIt-Anchor " href ="#操作数必须来自寄存器 "> </ a > 操作数必须来自寄存器</ h3 >
1122- < p > 变量f、g、h、i、j依次分配给$s0~$s4,编译下面的C语句</ p >
1123- < figure class ="highlight c "> < table > < tr > < td class ="code "> < pre > < span class ="line "> f = (g + h) - (i + j);</ span > < br > < span class ="line "> ---</ span > < br > < span class ="line "> add $t0, $s1, $s2 < span class ="comment "> // t0 = s1 + s2</ span > </ span > < br > < span class ="line "> add $t1, $s3, $s4</ span > < br > < span class ="line "> sub $s0, $t0, $t1 < span class ="comment "> // s0 = t0 + t1</ span > </ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
1124- < h3 id ="数据传输 "> < a class ="markdownIt-Anchor " href ="#数据传输 "> </ a > 数据传输</ h3 >
1125- < p > 只有少量数据存在寄存器中,因此需要在存储器和寄存器间传输数据</ p >
1126- < p > A的基址是存在$s3,编译下面的C语句</ p >
1127- < figure class ="highlight c "> < table > < tr > < td class ="code "> < pre > < span class ="line "> A[< span class ="number "> 12</ span > ] = h + A[< span class ="number "> 8</ span > ]</ span > < br > < span class ="line "> ---</ span > < br > < span class ="line "> lw $t0, < span class ="number "> 32</ span > ($s3) < span class ="comment "> // 先读数,再相加;32为偏移量,8*4byte</ span > </ span > < br > < span class ="line "> add $t0, $s2, $t0</ span > < br > < span class ="line "> sw $t0, < span class ="number "> 48</ span > ($s3) < span class ="comment "> // 存数</ span > </ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
1128- < h3 id ="立即数 "> < a class ="markdownIt-Anchor " href ="#立即数 "> </ a > 立即数</ h3 >
1129- < figure class ="highlight c "> < table > < tr > < td class ="code "> < pre > < span class ="line "> addi $t0, $t1, < span class ="number "> 4</ span > < span class ="comment "> // t0 = t1 + 4;无需读取4,作为立即数相加</ span > </ span > < br > < span class ="line "> subi $t0, $t1, < span class ="number "> 4</ span > </ span > < br > </ pre > </ td > </ tr > </ table > </ figure >
1130- <!--noindex-->
1131- < div class ="post-button ">
1132- < a class ="btn " href ="/ComputerScience/%E7%9F%A5%E8%AF%86/Computer%20Organization&Design%E5%AD%A6%E4%B9%A0%E8%AE%B0%E5%BD%95/#more " rel ="contents ">
1133- 阅读全文 »
1134- </ a >
1135- </ div >
1136- <!--/noindex-->
1137-
1138-
1139- </ div >
1140-
1141-
1142-
1143-
1144-
1145- < footer class ="post-footer ">
1146- < div class ="post-eof "> </ div >
1147-
1148- </ footer >
1149- </ article >
1150- </ div >
1151-
1152-
1153-
1154-
11551170 < nav class ="pagination ">
11561171 < span class ="page-number current "> 1</ span > < a class ="page-number " href ="/page/2/ "> 2</ a > < span class ="space "> …</ span > < a class ="page-number " href ="/page/6/ "> 6</ a > < a class ="extend next " rel ="next " title ="下一页 " aria-label ="下一页 " href ="/page/2/ "> < i class ="fa fa-angle-right "> </ i > </ a >
11571172 </ nav >
0 commit comments