[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content:legacy:page:\u002Fcheatsheets\u002Fredis":3,"content:legacy:navigation":1316,"content:legacy:surround:\u002Fcheatsheets\u002Fredis":1601},{"id":4,"title":5,"body":6,"description":1303,"extension":1304,"icon":1305,"meta":1306,"modifiedAt":1307,"navigation":1308,"path":1309,"publishedAt":1310,"seo":1311,"sitemap":1312,"stem":1314,"updatedAt":1313,"__hash__":1315},"cheatsheets\u002Fcheatsheets\u002Fredis.md","Redis",{"type":7,"value":8,"toc":1301},"minimark",[9,14,175,179,315,319,450,454,612,616,740,744,792,796,943,947,1006,1010,1084,1088,1170,1174,1297],[10,11,13],"h5",{"id":12},"️-hash","🗂️ Hash",[15,16,21],"pre",{"className":17,"code":18,"language":19,"meta":20,"style":20},"language-bash shiki shiki-themes github-light github-dark","HSET colors white fffff\nHSET colors black 000000\nHSET colors blue 0000FF\nHGET colors white\nHDEL colors white\nHGETALL colors                # Get all fields and values\nHMSET user:1 name Alice age 30\nHINCRBY user:1 age 1          # Increment field value\nHEXISTS colors black          # Check if field exists\nHKEYS colors                  # List all fields\nHVALS colors                  # List all values\n","bash","",[22,23,24,43,57,70,81,91,103,124,140,153,164],"code",{"__ignoreMap":20},[25,26,29,33,37,40],"span",{"class":27,"line":28},"line",1,[25,30,32],{"class":31},"sScJk","HSET",[25,34,36],{"class":35},"sZZnC"," colors",[25,38,39],{"class":35}," white",[25,41,42],{"class":35}," fffff\n",[25,44,46,48,50,53],{"class":27,"line":45},2,[25,47,32],{"class":31},[25,49,36],{"class":35},[25,51,52],{"class":35}," black",[25,54,56],{"class":55},"sj4cs"," 000000\n",[25,58,60,62,64,67],{"class":27,"line":59},3,[25,61,32],{"class":31},[25,63,36],{"class":35},[25,65,66],{"class":35}," blue",[25,68,69],{"class":35}," 0000FF\n",[25,71,73,76,78],{"class":27,"line":72},4,[25,74,75],{"class":31},"HGET",[25,77,36],{"class":35},[25,79,80],{"class":35}," white\n",[25,82,84,87,89],{"class":27,"line":83},5,[25,85,86],{"class":31},"HDEL",[25,88,36],{"class":35},[25,90,80],{"class":35},[25,92,94,97,99],{"class":27,"line":93},6,[25,95,96],{"class":31},"HGETALL",[25,98,36],{"class":35},[25,100,102],{"class":101},"sJ8bj","                # Get all fields and values\n",[25,104,106,109,112,115,118,121],{"class":27,"line":105},7,[25,107,108],{"class":31},"HMSET",[25,110,111],{"class":35}," user:1",[25,113,114],{"class":35}," name",[25,116,117],{"class":35}," Alice",[25,119,120],{"class":35}," age",[25,122,123],{"class":55}," 30\n",[25,125,127,130,132,134,137],{"class":27,"line":126},8,[25,128,129],{"class":31},"HINCRBY",[25,131,111],{"class":35},[25,133,120],{"class":35},[25,135,136],{"class":55}," 1",[25,138,139],{"class":101},"          # Increment field value\n",[25,141,143,146,148,150],{"class":27,"line":142},9,[25,144,145],{"class":31},"HEXISTS",[25,147,36],{"class":35},[25,149,52],{"class":35},[25,151,152],{"class":101},"          # Check if field exists\n",[25,154,156,159,161],{"class":27,"line":155},10,[25,157,158],{"class":31},"HKEYS",[25,160,36],{"class":35},[25,162,163],{"class":101},"                  # List all fields\n",[25,165,167,170,172],{"class":27,"line":166},11,[25,168,169],{"class":31},"HVALS",[25,171,36],{"class":35},[25,173,174],{"class":101},"                  # List all values\n",[10,176,178],{"id":177},"list","📋 List",[15,180,182],{"className":17,"code":181,"language":19,"meta":20,"style":20},"LPUSH tasks task1\nLPUSH tasks task2\nRPUSH tasks task3\nRPOP tasks                    # Remove and get last element\nLPOP tasks                    # Remove and get first element\nLRANGE tasks 0 2              # Get first 3 elements\nBRPOP tasks 5                 # Blocking RPOP with timeout\nBLPOP tasks 5                 # Blocking LPOP with timeout\nLLEN tasks                    # List length\nLREM tasks 1 task2            # Remove first occurrence of value\nLSET tasks 0 urgent_task      # Set value at index\n",[22,183,184,195,204,214,224,234,250,263,275,285,300],{"__ignoreMap":20},[25,185,186,189,192],{"class":27,"line":28},[25,187,188],{"class":31},"LPUSH",[25,190,191],{"class":35}," tasks",[25,193,194],{"class":35}," task1\n",[25,196,197,199,201],{"class":27,"line":45},[25,198,188],{"class":31},[25,200,191],{"class":35},[25,202,203],{"class":35}," task2\n",[25,205,206,209,211],{"class":27,"line":59},[25,207,208],{"class":31},"RPUSH",[25,210,191],{"class":35},[25,212,213],{"class":35}," task3\n",[25,215,216,219,221],{"class":27,"line":72},[25,217,218],{"class":31},"RPOP",[25,220,191],{"class":35},[25,222,223],{"class":101},"                    # Remove and get last element\n",[25,225,226,229,231],{"class":27,"line":83},[25,227,228],{"class":31},"LPOP",[25,230,191],{"class":35},[25,232,233],{"class":101},"                    # Remove and get first element\n",[25,235,236,239,241,244,247],{"class":27,"line":93},[25,237,238],{"class":31},"LRANGE",[25,240,191],{"class":35},[25,242,243],{"class":55}," 0",[25,245,246],{"class":55}," 2",[25,248,249],{"class":101},"              # Get first 3 elements\n",[25,251,252,255,257,260],{"class":27,"line":105},[25,253,254],{"class":31},"BRPOP",[25,256,191],{"class":35},[25,258,259],{"class":55}," 5",[25,261,262],{"class":101},"                 # Blocking RPOP with timeout\n",[25,264,265,268,270,272],{"class":27,"line":126},[25,266,267],{"class":31},"BLPOP",[25,269,191],{"class":35},[25,271,259],{"class":55},[25,273,274],{"class":101},"                 # Blocking LPOP with timeout\n",[25,276,277,280,282],{"class":27,"line":142},[25,278,279],{"class":31},"LLEN",[25,281,191],{"class":35},[25,283,284],{"class":101},"                    # List length\n",[25,286,287,290,292,294,297],{"class":27,"line":155},[25,288,289],{"class":31},"LREM",[25,291,191],{"class":35},[25,293,136],{"class":55},[25,295,296],{"class":35}," task2",[25,298,299],{"class":101},"            # Remove first occurrence of value\n",[25,301,302,305,307,309,312],{"class":27,"line":166},[25,303,304],{"class":31},"LSET",[25,306,191],{"class":35},[25,308,243],{"class":55},[25,310,311],{"class":35}," urgent_task",[25,313,314],{"class":101},"      # Set value at index\n",[10,316,318],{"id":317},"set","🧩 Set",[15,320,322],{"className":17,"code":321,"language":19,"meta":20,"style":20},"SADD colors white\nSADD colors black\nSADD colors blue\nSREM colors white\nSMEMBERS colors               # List all members\nSISMEMBER colors black        # Check membership\nSCARD colors                  # Set cardinality\nSRANDMEMBER colors            # Get random member\nSPOP colors                   # Remove and return random member\nSDIFF colors othercolors      # Diff sets\nSINTER colors othercolors     # Intersect sets\nSUNION colors othercolors     # Union sets\n",[22,323,324,333,342,351,360,370,382,392,402,412,425,437],{"__ignoreMap":20},[25,325,326,329,331],{"class":27,"line":28},[25,327,328],{"class":31},"SADD",[25,330,36],{"class":35},[25,332,80],{"class":35},[25,334,335,337,339],{"class":27,"line":45},[25,336,328],{"class":31},[25,338,36],{"class":35},[25,340,341],{"class":35}," black\n",[25,343,344,346,348],{"class":27,"line":59},[25,345,328],{"class":31},[25,347,36],{"class":35},[25,349,350],{"class":35}," blue\n",[25,352,353,356,358],{"class":27,"line":72},[25,354,355],{"class":31},"SREM",[25,357,36],{"class":35},[25,359,80],{"class":35},[25,361,362,365,367],{"class":27,"line":83},[25,363,364],{"class":31},"SMEMBERS",[25,366,36],{"class":35},[25,368,369],{"class":101},"               # List all members\n",[25,371,372,375,377,379],{"class":27,"line":93},[25,373,374],{"class":31},"SISMEMBER",[25,376,36],{"class":35},[25,378,52],{"class":35},[25,380,381],{"class":101},"        # Check membership\n",[25,383,384,387,389],{"class":27,"line":105},[25,385,386],{"class":31},"SCARD",[25,388,36],{"class":35},[25,390,391],{"class":101},"                  # Set cardinality\n",[25,393,394,397,399],{"class":27,"line":126},[25,395,396],{"class":31},"SRANDMEMBER",[25,398,36],{"class":35},[25,400,401],{"class":101},"            # Get random member\n",[25,403,404,407,409],{"class":27,"line":142},[25,405,406],{"class":31},"SPOP",[25,408,36],{"class":35},[25,410,411],{"class":101},"                   # Remove and return random member\n",[25,413,414,417,419,422],{"class":27,"line":155},[25,415,416],{"class":31},"SDIFF",[25,418,36],{"class":35},[25,420,421],{"class":35}," othercolors",[25,423,424],{"class":101},"      # Diff sets\n",[25,426,427,430,432,434],{"class":27,"line":166},[25,428,429],{"class":31},"SINTER",[25,431,36],{"class":35},[25,433,421],{"class":35},[25,435,436],{"class":101},"     # Intersect sets\n",[25,438,440,443,445,447],{"class":27,"line":439},12,[25,441,442],{"class":31},"SUNION",[25,444,36],{"class":35},[25,446,421],{"class":35},[25,448,449],{"class":101},"     # Union sets\n",[10,451,453],{"id":452},"sorted-set","📊 Sorted Set",[15,455,457],{"className":17,"code":456,"language":19,"meta":20,"style":20},"ZADD scores 100 \"Alice\"\nZADD scores 200 \"Bob\"\nZINCRBY scores 50 \"Alice\"         # Increment score\nZRANGE scores 0 -1 WITHSCORES     # Get all members with scores\nZREVRANGE scores 0 1 WITHSCORES   # Top 2 scores\nZREM scores \"Bob\"                 # Remove member\nZCOUNT scores 100 200             # Count members in score range\nZRANK scores \"Alice\"              # Get rank of member\nZPOPMAX scores                    # Remove & return member with max score\nZPOPMIN scores                    # Remove & return member with min score\nZSCAN scores 0 MATCH \"A*\"         # Scan by pattern\n",[22,458,459,473,485,501,519,535,548,562,574,584,594],{"__ignoreMap":20},[25,460,461,464,467,470],{"class":27,"line":28},[25,462,463],{"class":31},"ZADD",[25,465,466],{"class":35}," scores",[25,468,469],{"class":55}," 100",[25,471,472],{"class":35}," \"Alice\"\n",[25,474,475,477,479,482],{"class":27,"line":45},[25,476,463],{"class":31},[25,478,466],{"class":35},[25,480,481],{"class":55}," 200",[25,483,484],{"class":35}," \"Bob\"\n",[25,486,487,490,492,495,498],{"class":27,"line":59},[25,488,489],{"class":31},"ZINCRBY",[25,491,466],{"class":35},[25,493,494],{"class":55}," 50",[25,496,497],{"class":35}," \"Alice\"",[25,499,500],{"class":101},"         # Increment score\n",[25,502,503,506,508,510,513,516],{"class":27,"line":72},[25,504,505],{"class":31},"ZRANGE",[25,507,466],{"class":35},[25,509,243],{"class":55},[25,511,512],{"class":55}," -1",[25,514,515],{"class":35}," WITHSCORES",[25,517,518],{"class":101},"     # Get all members with scores\n",[25,520,521,524,526,528,530,532],{"class":27,"line":83},[25,522,523],{"class":31},"ZREVRANGE",[25,525,466],{"class":35},[25,527,243],{"class":55},[25,529,136],{"class":55},[25,531,515],{"class":35},[25,533,534],{"class":101},"   # Top 2 scores\n",[25,536,537,540,542,545],{"class":27,"line":93},[25,538,539],{"class":31},"ZREM",[25,541,466],{"class":35},[25,543,544],{"class":35}," \"Bob\"",[25,546,547],{"class":101},"                 # Remove member\n",[25,549,550,553,555,557,559],{"class":27,"line":105},[25,551,552],{"class":31},"ZCOUNT",[25,554,466],{"class":35},[25,556,469],{"class":55},[25,558,481],{"class":55},[25,560,561],{"class":101},"             # Count members in score range\n",[25,563,564,567,569,571],{"class":27,"line":126},[25,565,566],{"class":31},"ZRANK",[25,568,466],{"class":35},[25,570,497],{"class":35},[25,572,573],{"class":101},"              # Get rank of member\n",[25,575,576,579,581],{"class":27,"line":142},[25,577,578],{"class":31},"ZPOPMAX",[25,580,466],{"class":35},[25,582,583],{"class":101},"                    # Remove & return member with max score\n",[25,585,586,589,591],{"class":27,"line":155},[25,587,588],{"class":31},"ZPOPMIN",[25,590,466],{"class":35},[25,592,593],{"class":101},"                    # Remove & return member with min score\n",[25,595,596,599,601,603,606,609],{"class":27,"line":166},[25,597,598],{"class":31},"ZSCAN",[25,600,466],{"class":35},[25,602,243],{"class":55},[25,604,605],{"class":35}," MATCH",[25,607,608],{"class":35}," \"A*\"",[25,610,611],{"class":101},"         # Scan by pattern\n",[10,613,615],{"id":614},"string","📝 String",[15,617,619],{"className":17,"code":618,"language":19,"meta":20,"style":20},"SET welcomeMessage \"Hello\"\nAPPEND welcomeMessage \" World\"\nGET welcomeMessage\nSET masterServer host123 EX 60 NX # EX: expire in seconds, NX: only if not exists\nSET anotherKey value PX 5000 XX   # PX: expire in ms, XX: only if exists\nGETRANGE welcomeMessage 0 4       # Substring\nSTRLEN welcomeMessage             # String length\nINCR counter                      # Increment integer value\nDECR counter                      # Decrement integer value\n",[22,620,621,632,642,650,672,694,709,719,730],{"__ignoreMap":20},[25,622,623,626,629],{"class":27,"line":28},[25,624,625],{"class":31},"SET",[25,627,628],{"class":35}," welcomeMessage",[25,630,631],{"class":35}," \"Hello\"\n",[25,633,634,637,639],{"class":27,"line":45},[25,635,636],{"class":31},"APPEND",[25,638,628],{"class":35},[25,640,641],{"class":35}," \" World\"\n",[25,643,644,647],{"class":27,"line":59},[25,645,646],{"class":31},"GET",[25,648,649],{"class":35}," welcomeMessage\n",[25,651,652,654,657,660,663,666,669],{"class":27,"line":72},[25,653,625],{"class":31},[25,655,656],{"class":35}," masterServer",[25,658,659],{"class":35}," host123",[25,661,662],{"class":35}," EX",[25,664,665],{"class":55}," 60",[25,667,668],{"class":35}," NX",[25,670,671],{"class":101}," # EX: expire in seconds, NX: only if not exists\n",[25,673,674,676,679,682,685,688,691],{"class":27,"line":83},[25,675,625],{"class":31},[25,677,678],{"class":35}," anotherKey",[25,680,681],{"class":35}," value",[25,683,684],{"class":35}," PX",[25,686,687],{"class":55}," 5000",[25,689,690],{"class":35}," XX",[25,692,693],{"class":101},"   # PX: expire in ms, XX: only if exists\n",[25,695,696,699,701,703,706],{"class":27,"line":93},[25,697,698],{"class":31},"GETRANGE",[25,700,628],{"class":35},[25,702,243],{"class":55},[25,704,705],{"class":55}," 4",[25,707,708],{"class":101},"       # Substring\n",[25,710,711,714,716],{"class":27,"line":105},[25,712,713],{"class":31},"STRLEN",[25,715,628],{"class":35},[25,717,718],{"class":101},"             # String length\n",[25,720,721,724,727],{"class":27,"line":126},[25,722,723],{"class":31},"INCR",[25,725,726],{"class":35}," counter",[25,728,729],{"class":101},"                      # Increment integer value\n",[25,731,732,735,737],{"class":27,"line":142},[25,733,734],{"class":31},"DECR",[25,736,726],{"class":35},[25,738,739],{"class":101},"                      # Decrement integer value\n",[10,741,743],{"id":742},"️-misc","🛠️ MISC",[15,745,747],{"className":17,"code":746,"language":19,"meta":20,"style":20},"FLUSHALL                         # Remove all keys from all DBs\nFLUSHDB                          # Remove all keys from current DB\nECHO \"Hello Redis\"               # Print message\nTIME                             # Server time\nPING                             # Test connection\n",[22,748,749,757,765,776,784],{"__ignoreMap":20},[25,750,751,754],{"class":27,"line":28},[25,752,753],{"class":31},"FLUSHALL",[25,755,756],{"class":101},"                         # Remove all keys from all DBs\n",[25,758,759,762],{"class":27,"line":45},[25,760,761],{"class":31},"FLUSHDB",[25,763,764],{"class":101},"                          # Remove all keys from current DB\n",[25,766,767,770,773],{"class":27,"line":59},[25,768,769],{"class":31},"ECHO",[25,771,772],{"class":35}," \"Hello Redis\"",[25,774,775],{"class":101},"               # Print message\n",[25,777,778,781],{"class":27,"line":72},[25,779,780],{"class":31},"TIME",[25,782,783],{"class":101},"                             # Server time\n",[25,785,786,789],{"class":27,"line":83},[25,787,788],{"class":31},"PING",[25,790,791],{"class":101},"                             # Test connection\n",[10,793,795],{"id":794},"key-management","🔑 Key Management",[15,797,799],{"className":17,"code":798,"language":19,"meta":20,"style":20},"EXISTS keyname                    # Check if key exists\nDEL keyname                       # Delete key\nEXPIRE keyname 60                 # Set key to expire in 60 seconds\nTTL keyname                       # Time to live for key\nPERSIST keyname                   # Remove expiration\nRENAME oldkey newkey              # Rename key\nTYPE keyname                      # Get key type\nKEYS *pattern*                    # List keys by pattern\nSCAN 0 MATCH *pattern* COUNT 100  # Incremental key scan\nDUMP keyname                      # Serialize key\nRESTORE keyname 0 serialized_val  # Restore key\n",[22,800,801,812,822,834,844,854,868,878,895,918,928],{"__ignoreMap":20},[25,802,803,806,809],{"class":27,"line":28},[25,804,805],{"class":31},"EXISTS",[25,807,808],{"class":35}," keyname",[25,810,811],{"class":101},"                    # Check if key exists\n",[25,813,814,817,819],{"class":27,"line":45},[25,815,816],{"class":31},"DEL",[25,818,808],{"class":35},[25,820,821],{"class":101},"                       # Delete key\n",[25,823,824,827,829,831],{"class":27,"line":59},[25,825,826],{"class":31},"EXPIRE",[25,828,808],{"class":35},[25,830,665],{"class":55},[25,832,833],{"class":101},"                 # Set key to expire in 60 seconds\n",[25,835,836,839,841],{"class":27,"line":72},[25,837,838],{"class":31},"TTL",[25,840,808],{"class":35},[25,842,843],{"class":101},"                       # Time to live for key\n",[25,845,846,849,851],{"class":27,"line":83},[25,847,848],{"class":31},"PERSIST",[25,850,808],{"class":35},[25,852,853],{"class":101},"                   # Remove expiration\n",[25,855,856,859,862,865],{"class":27,"line":93},[25,857,858],{"class":31},"RENAME",[25,860,861],{"class":35}," oldkey",[25,863,864],{"class":35}," newkey",[25,866,867],{"class":101},"              # Rename key\n",[25,869,870,873,875],{"class":27,"line":105},[25,871,872],{"class":31},"TYPE",[25,874,808],{"class":35},[25,876,877],{"class":101},"                      # Get key type\n",[25,879,880,883,886,889,892],{"class":27,"line":126},[25,881,882],{"class":31},"KEYS",[25,884,885],{"class":55}," *",[25,887,888],{"class":35},"pattern",[25,890,891],{"class":55},"*",[25,893,894],{"class":101},"                    # List keys by pattern\n",[25,896,897,900,902,904,906,908,910,913,915],{"class":27,"line":142},[25,898,899],{"class":31},"SCAN",[25,901,243],{"class":55},[25,903,605],{"class":35},[25,905,885],{"class":55},[25,907,888],{"class":35},[25,909,891],{"class":55},[25,911,912],{"class":35}," COUNT",[25,914,469],{"class":55},[25,916,917],{"class":101},"  # Incremental key scan\n",[25,919,920,923,925],{"class":27,"line":155},[25,921,922],{"class":31},"DUMP",[25,924,808],{"class":35},[25,926,927],{"class":101},"                      # Serialize key\n",[25,929,930,933,935,937,940],{"class":27,"line":166},[25,931,932],{"class":31},"RESTORE",[25,934,808],{"class":35},[25,936,243],{"class":55},[25,938,939],{"class":35}," serialized_val",[25,941,942],{"class":101},"  # Restore key\n",[10,944,946],{"id":945},"transactions","🔄 Transactions",[15,948,950],{"className":17,"code":949,"language":19,"meta":20,"style":20},"MULTI\nSET foo bar\nINCR counter\nEXEC\nDISCARD                          # Cancel transaction\nWATCH key1 key2                  # Watch keys for changes\nUNWATCH\n",[22,951,952,957,967,974,979,987,1001],{"__ignoreMap":20},[25,953,954],{"class":27,"line":28},[25,955,956],{"class":31},"MULTI\n",[25,958,959,961,964],{"class":27,"line":45},[25,960,625],{"class":31},[25,962,963],{"class":35}," foo",[25,965,966],{"class":35}," bar\n",[25,968,969,971],{"class":27,"line":59},[25,970,723],{"class":31},[25,972,973],{"class":35}," counter\n",[25,975,976],{"class":27,"line":72},[25,977,978],{"class":31},"EXEC\n",[25,980,981,984],{"class":27,"line":83},[25,982,983],{"class":31},"DISCARD",[25,985,986],{"class":101},"                          # Cancel transaction\n",[25,988,989,992,995,998],{"class":27,"line":93},[25,990,991],{"class":31},"WATCH",[25,993,994],{"class":35}," key1",[25,996,997],{"class":35}," key2",[25,999,1000],{"class":101},"                  # Watch keys for changes\n",[25,1002,1003],{"class":27,"line":105},[25,1004,1005],{"class":31},"UNWATCH\n",[10,1007,1009],{"id":1008},"pubsub","📡 Pub\u002FSub",[15,1011,1013],{"className":17,"code":1012,"language":19,"meta":20,"style":20},"SUBSCRIBE channel1\nPUBLISH channel1 \"Hello World\"\nUNSUBSCRIBE channel1\nPSUBSCRIBE news.*\nPUNSUBSCRIBE news.*\nPUBSUB CHANNELS                  # List active channels\nPUBSUB NUMSUB channel1           # Subscribers count\n",[22,1014,1015,1023,1034,1041,1052,1061,1072],{"__ignoreMap":20},[25,1016,1017,1020],{"class":27,"line":28},[25,1018,1019],{"class":31},"SUBSCRIBE",[25,1021,1022],{"class":35}," channel1\n",[25,1024,1025,1028,1031],{"class":27,"line":45},[25,1026,1027],{"class":31},"PUBLISH",[25,1029,1030],{"class":35}," channel1",[25,1032,1033],{"class":35}," \"Hello World\"\n",[25,1035,1036,1039],{"class":27,"line":59},[25,1037,1038],{"class":31},"UNSUBSCRIBE",[25,1040,1022],{"class":35},[25,1042,1043,1046,1049],{"class":27,"line":72},[25,1044,1045],{"class":31},"PSUBSCRIBE",[25,1047,1048],{"class":35}," news.",[25,1050,1051],{"class":55},"*\n",[25,1053,1054,1057,1059],{"class":27,"line":83},[25,1055,1056],{"class":31},"PUNSUBSCRIBE",[25,1058,1048],{"class":35},[25,1060,1051],{"class":55},[25,1062,1063,1066,1069],{"class":27,"line":93},[25,1064,1065],{"class":31},"PUBSUB",[25,1067,1068],{"class":35}," CHANNELS",[25,1070,1071],{"class":101},"                  # List active channels\n",[25,1073,1074,1076,1079,1081],{"class":27,"line":105},[25,1075,1065],{"class":31},[25,1077,1078],{"class":35}," NUMSUB",[25,1080,1030],{"class":35},[25,1082,1083],{"class":101},"           # Subscribers count\n",[10,1085,1087],{"id":1086},"persistence-info","💾 Persistence & Info",[15,1089,1091],{"className":17,"code":1090,"language":19,"meta":20,"style":20},"SAVE                              # Synchronous save\nBGSAVE                            # Background save\nLASTSAVE                          # Last save timestamp\nINFO                              # Server info and stats\nDBSIZE                            # Number of keys in DB\nMONITOR                           # Real-time command monitoring\nCONFIG GET *                      # Show config\nCONFIG SET maxmemory 256mb        # Set config\n",[22,1092,1093,1101,1109,1117,1125,1133,1141,1154],{"__ignoreMap":20},[25,1094,1095,1098],{"class":27,"line":28},[25,1096,1097],{"class":31},"SAVE",[25,1099,1100],{"class":101},"                              # Synchronous save\n",[25,1102,1103,1106],{"class":27,"line":45},[25,1104,1105],{"class":31},"BGSAVE",[25,1107,1108],{"class":101},"                            # Background save\n",[25,1110,1111,1114],{"class":27,"line":59},[25,1112,1113],{"class":31},"LASTSAVE",[25,1115,1116],{"class":101},"                          # Last save timestamp\n",[25,1118,1119,1122],{"class":27,"line":72},[25,1120,1121],{"class":31},"INFO",[25,1123,1124],{"class":101},"                              # Server info and stats\n",[25,1126,1127,1130],{"class":27,"line":83},[25,1128,1129],{"class":31},"DBSIZE",[25,1131,1132],{"class":101},"                            # Number of keys in DB\n",[25,1134,1135,1138],{"class":27,"line":93},[25,1136,1137],{"class":31},"MONITOR",[25,1139,1140],{"class":101},"                           # Real-time command monitoring\n",[25,1142,1143,1146,1149,1151],{"class":27,"line":105},[25,1144,1145],{"class":31},"CONFIG",[25,1147,1148],{"class":35}," GET",[25,1150,885],{"class":55},[25,1152,1153],{"class":101},"                      # Show config\n",[25,1155,1156,1158,1161,1164,1167],{"class":27,"line":126},[25,1157,1145],{"class":31},[25,1159,1160],{"class":35}," SET",[25,1162,1163],{"class":35}," maxmemory",[25,1165,1166],{"class":35}," 256mb",[25,1168,1169],{"class":101},"        # Set config\n",[10,1171,1173],{"id":1172},"useful-patterns","🧠 Useful Patterns",[15,1175,1177],{"className":17,"code":1176,"language":19,"meta":20,"style":20},"SETNX lock_key \"locked\"           # Simple lock\nGETSET counter 0                  # Get old value and set new\nMSET key1 val1 key2 val2          # Set multiple keys\nMGET key1 key2                    # Get multiple keys\nINCRBY counter 5                  # Increment by value\nDECRBY counter 2                  # Decrement by value\nBITCOUNT bitmap                   # Count set bits\nPFADD hll user1 user2             # HyperLogLog add\nPFCOUNT hll                       # HyperLogLog count\n",[22,1178,1179,1193,1205,1223,1235,1247,1259,1270,1287],{"__ignoreMap":20},[25,1180,1181,1184,1187,1190],{"class":27,"line":28},[25,1182,1183],{"class":31},"SETNX",[25,1185,1186],{"class":35}," lock_key",[25,1188,1189],{"class":35}," \"locked\"",[25,1191,1192],{"class":101},"           # Simple lock\n",[25,1194,1195,1198,1200,1202],{"class":27,"line":45},[25,1196,1197],{"class":31},"GETSET",[25,1199,726],{"class":35},[25,1201,243],{"class":55},[25,1203,1204],{"class":101},"                  # Get old value and set new\n",[25,1206,1207,1210,1212,1215,1217,1220],{"class":27,"line":59},[25,1208,1209],{"class":31},"MSET",[25,1211,994],{"class":35},[25,1213,1214],{"class":35}," val1",[25,1216,997],{"class":35},[25,1218,1219],{"class":35}," val2",[25,1221,1222],{"class":101},"          # Set multiple keys\n",[25,1224,1225,1228,1230,1232],{"class":27,"line":72},[25,1226,1227],{"class":31},"MGET",[25,1229,994],{"class":35},[25,1231,997],{"class":35},[25,1233,1234],{"class":101},"                    # Get multiple keys\n",[25,1236,1237,1240,1242,1244],{"class":27,"line":83},[25,1238,1239],{"class":31},"INCRBY",[25,1241,726],{"class":35},[25,1243,259],{"class":55},[25,1245,1246],{"class":101},"                  # Increment by value\n",[25,1248,1249,1252,1254,1256],{"class":27,"line":93},[25,1250,1251],{"class":31},"DECRBY",[25,1253,726],{"class":35},[25,1255,246],{"class":55},[25,1257,1258],{"class":101},"                  # Decrement by value\n",[25,1260,1261,1264,1267],{"class":27,"line":105},[25,1262,1263],{"class":31},"BITCOUNT",[25,1265,1266],{"class":35}," bitmap",[25,1268,1269],{"class":101},"                   # Count set bits\n",[25,1271,1272,1275,1278,1281,1284],{"class":27,"line":126},[25,1273,1274],{"class":31},"PFADD",[25,1276,1277],{"class":35}," hll",[25,1279,1280],{"class":35}," user1",[25,1282,1283],{"class":35}," user2",[25,1285,1286],{"class":101},"             # HyperLogLog add\n",[25,1288,1289,1292,1294],{"class":27,"line":142},[25,1290,1291],{"class":31},"PFCOUNT",[25,1293,1277],{"class":35},[25,1295,1296],{"class":101},"                       # HyperLogLog count\n",[1298,1299,1300],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":20,"searchDepth":45,"depth":45,"links":1302},[],"A comprehensive guide to Redis in-memory data structure store.","md","vscode-icons:folder-type-redis-opened",{},null,true,"\u002Fcheatsheets\u002Fredis","2025-08-14",{"title":5,"description":1303},{"loc":1309,"lastmod":1313},"2025-08-25T11:45:43+07:00","cheatsheets\u002Fredis","W1wTHk5AqwsCjSMYNSEqMv4u9VAYpMTfAb213AvPqJo",[1317,1468,1572,1593],{"title":1318,"icon":1319,"path":1320,"stem":1321,"children":1322,"page":1333},"Posts","fluent-color:data-bar-vertical-ascending-24","\u002Fposts","posts",[1323,1334,1352,1378,1388,1402,1412,1422,1432,1458],{"title":1324,"icon":1325,"redirect":1326,"path":1327,"stem":1328,"children":1329,"page":1333},"Database","material-icon-theme:database","\u002Fposts\u002Fdatabase\u002Freplication-strategy","\u002Fposts\u002Fdatabase","posts\u002Fdatabase",[1330],{"title":1331,"path":1326,"stem":1332,"icon":1307},"Database Replication strategy in large systems","posts\u002Fdatabase\u002Freplication-strategy",false,{"title":1335,"icon":1336,"redirect":1337,"path":1338,"stem":1339,"children":1340,"page":1333},"Docker","vscode-icons:file-type-docker2","\u002Fposts\u002Fdocker\u002Fdocker-commands","\u002Fposts\u002Fdocker","posts\u002Fdocker",[1341,1344,1348],{"title":1342,"path":1337,"stem":1343,"icon":1307},"Docker commands essentials","posts\u002Fdocker\u002Fdocker-commands",{"title":1345,"path":1346,"stem":1347,"icon":1307},"Some useful Dockerfile templates","\u002Fposts\u002Fdocker\u002Fdockerfile-templates","posts\u002Fdocker\u002Fdockerfile-templates",{"title":1349,"path":1350,"stem":1351,"icon":1307},"Setup Docker environment on Windows","\u002Fposts\u002Fdocker\u002Fsetup-docker-on-window","posts\u002Fdocker\u002Fsetup-docker-on-window",{"title":1353,"icon":1354,"redirect":1355,"path":1356,"stem":1357,"children":1358,"page":1333},"Git & GitHub","material-icon-theme:git","\u002Fposts\u002Fgit\u002Fbrightly-decorate-graph","\u002Fposts\u002Fgit","posts\u002Fgit",[1359,1362,1366,1370,1374],{"title":1360,"path":1355,"stem":1361,"icon":1307},"Brightly decorate your GitHub Graph","posts\u002Fgit\u002Fbrightly-decorate-graph",{"title":1363,"path":1364,"stem":1365,"icon":1307},"Download a specific folder on GitHub repository","\u002Fposts\u002Fgit\u002Fdownload-specific-folder","posts\u002Fgit\u002Fdownload-specific-folder",{"title":1367,"path":1368,"stem":1369,"icon":1307},"Syncing Git Tags across to other repositories","\u002Fposts\u002Fgit\u002Fsyncing-tags-across-repositories","posts\u002Fgit\u002Fsyncing-tags-across-repositories",{"title":1371,"path":1372,"stem":1373,"icon":1307},"Unlocking GitHub Achievement badges","\u002Fposts\u002Fgit\u002Funlocking-achievement-badges","posts\u002Fgit\u002Funlocking-achievement-badges",{"title":1375,"path":1376,"stem":1377,"icon":1307},"Essential Git commands every developer should master","\u002Fposts\u002Fgit\u002Fuseful-commands-like-pro","posts\u002Fgit\u002Fuseful-commands-like-pro",{"title":1379,"icon":1380,"redirect":1381,"path":1382,"stem":1383,"children":1384,"page":1333},"Golang","material-icon-theme:go","\u002Fposts\u002Fgolang\u002Foptimizing-performance-with-pgo","\u002Fposts\u002Fgolang","posts\u002Fgolang",[1385],{"title":1386,"path":1381,"stem":1387,"icon":1307},"Optimizing Performance in Go Applications with PGO","posts\u002Fgolang\u002Foptimizing-performance-with-pgo",{"title":1389,"icon":1390,"redirect":1391,"path":1392,"stem":1393,"children":1394,"page":1333},"JavaScript","vscode-icons:file-type-js","\u002Fposts\u002Fjavascript\u002F9-lines-of-tips","\u002Fposts\u002Fjavascript","posts\u002Fjavascript",[1395,1398],{"title":1396,"path":1391,"stem":1397,"icon":1307},"9 lines of JavaScript replace 50 lines of code","posts\u002Fjavascript\u002F9-lines-of-tips",{"title":1399,"path":1400,"stem":1401,"icon":1307},"Javascript Promises - Specific functions and use cases","\u002Fposts\u002Fjavascript\u002Fpromises-cheatsheet","posts\u002Fjavascript\u002Fpromises-cheatsheet",{"title":1403,"icon":1404,"redirect":1405,"path":1406,"stem":1407,"children":1408,"page":1333},"Node","material-icon-theme:nodejs-alt","\u002Fposts\u002Fnodejs\u002Fevent-loop","\u002Fposts\u002Fnodejs","posts\u002Fnodejs",[1409],{"title":1410,"path":1405,"stem":1411,"icon":1307},"Secret about Event Loop flow in Nodejs","posts\u002Fnodejs\u002Fevent-loop",{"title":1413,"icon":1414,"redirect":1415,"path":1416,"stem":1417,"children":1418,"page":1333},"Nuxt","vscode-icons:file-type-nuxt","\u002Fposts\u002Fnuxt\u002Fenable-pwa-in-nuxt","\u002Fposts\u002Fnuxt","posts\u002Fnuxt",[1419],{"title":1420,"path":1415,"stem":1421,"icon":1307},"Enable PWA and Service Worker in Nuxt","posts\u002Fnuxt\u002Fenable-pwa-in-nuxt",{"title":1423,"icon":1424,"redirect":1425,"path":1426,"stem":1427,"children":1428,"page":1333},"Performance","emojione:rocket","\u002Fposts\u002Fperformance\u002Fbackground-image-injection-problem","\u002Fposts\u002Fperformance","posts\u002Fperformance",[1429],{"title":1430,"path":1425,"stem":1431,"icon":1307},"Background-Image injection problem in UX","posts\u002Fperformance\u002Fbackground-image-injection-problem",{"title":1433,"icon":1434,"redirect":1435,"path":1436,"stem":1437,"children":1438,"page":1333},"Tutorial","fluent-color:book-open-lightbulb-24","\u002Fposts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers","\u002Fposts\u002Ftutorial","posts\u002Ftutorial",[1439,1442,1446,1450,1454],{"title":1440,"path":1435,"stem":1441,"icon":1307},"Classification and functionality of the servers","posts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers",{"title":1443,"path":1444,"stem":1445,"icon":1307},"What is the difference between localhost and 127.0.0.1?","\u002Fposts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1","posts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1",{"title":1447,"path":1448,"stem":1449,"icon":1307},"8 essential network protocols every programmer should know","\u002Fposts\u002Ftutorial\u002Fessential-network-protocols","posts\u002Ftutorial\u002Fessential-network-protocols",{"title":1451,"path":1452,"stem":1453,"icon":1307},"Pre rels in header link tag - SEO technique enhancement","\u002Fposts\u002Ftutorial\u002Fpre-rels-in-header-link-tag","posts\u002Ftutorial\u002Fpre-rels-in-header-link-tag",{"title":1455,"path":1456,"stem":1457,"icon":1307},"Better code with SOLID principles","\u002Fposts\u002Ftutorial\u002Fwhat-is-solid","posts\u002Ftutorial\u002Fwhat-is-solid",{"title":1459,"icon":1460,"redirect":1461,"path":1462,"stem":1463,"children":1464,"page":1333},"UI\u002FUX","devicon:figma","\u002Fposts\u002Fuiux\u002Fcommon-button-mistake","\u002Fposts\u002Fuiux","posts\u002Fuiux",[1465],{"title":1466,"path":1461,"stem":1467,"icon":1307},"Common Button Mistake in UI\u002FUX","posts\u002Fuiux\u002Fcommon-button-mistake",{"title":1469,"icon":1470,"path":1471,"stem":1472,"children":1473,"page":1333},"Cheatsheets","fluent-color:paw-16","\u002Fcheatsheets","cheatsheets",[1474,1479,1484,1487,1492,1495,1500,1504,1509,1514,1519,1524,1529,1534,1538,1542,1547,1548,1552,1557,1562,1567],{"title":1475,"path":1476,"stem":1477,"icon":1478},"Bash","\u002Fcheatsheets\u002Fbash","cheatsheets\u002Fbash","material-icon-theme:powershell",{"title":1480,"path":1481,"stem":1482,"icon":1483},"CSS","\u002Fcheatsheets\u002Fcss","cheatsheets\u002Fcss","vscode-icons:file-type-css2",{"title":1335,"path":1485,"stem":1486,"icon":1336},"\u002Fcheatsheets\u002Fdocker","cheatsheets\u002Fdocker",{"title":1488,"path":1489,"stem":1490,"icon":1491},"Git","\u002Fcheatsheets\u002Fgit","cheatsheets\u002Fgit","devicon:git",{"title":1379,"path":1493,"stem":1494,"icon":1380},"\u002Fcheatsheets\u002Fgo","cheatsheets\u002Fgo",{"title":1496,"path":1497,"stem":1498,"icon":1499},"HTML","\u002Fcheatsheets\u002Fhtml","cheatsheets\u002Fhtml","material-icon-theme:html",{"title":1389,"path":1501,"stem":1502,"icon":1503},"\u002Fcheatsheets\u002Fjavascript","cheatsheets\u002Fjavascript","material-icon-theme:javascript",{"title":1505,"path":1506,"stem":1507,"icon":1508},"Latex","\u002Fcheatsheets\u002Flatex","cheatsheets\u002Flatex","material-icon-theme:latexmk",{"title":1510,"path":1511,"stem":1512,"icon":1513},"Linux","\u002Fcheatsheets\u002Flinux","cheatsheets\u002Flinux","devicon:linux",{"title":1515,"path":1516,"stem":1517,"icon":1518},"Markdown","\u002Fcheatsheets\u002Fmarkdown","cheatsheets\u002Fmarkdown","material-icon-theme:markdown",{"title":1520,"path":1521,"stem":1522,"icon":1523},"Mongo","\u002Fcheatsheets\u002Fmongo","cheatsheets\u002Fmongo","devicon:mongodb",{"title":1525,"path":1526,"stem":1527,"icon":1528},"Nest","\u002Fcheatsheets\u002Fnest","cheatsheets\u002Fnest","material-icon-theme:nest",{"title":1530,"path":1531,"stem":1532,"icon":1533},"Next","\u002Fcheatsheets\u002Fnext","cheatsheets\u002Fnext","logos:nextjs-icon",{"title":1403,"path":1535,"stem":1536,"icon":1537},"\u002Fcheatsheets\u002Fnode","cheatsheets\u002Fnode","material-icon-theme:nodejs",{"title":1413,"path":1539,"stem":1540,"icon":1541},"\u002Fcheatsheets\u002Fnuxt","cheatsheets\u002Fnuxt","material-icon-theme:nuxt",{"title":1543,"path":1544,"stem":1545,"icon":1546},"React","\u002Fcheatsheets\u002Freact","cheatsheets\u002Freact","material-icon-theme:react",{"title":5,"path":1309,"stem":1314,"icon":1305},{"title":1549,"path":1550,"stem":1551,"icon":1325},"SQL","\u002Fcheatsheets\u002Fsql","cheatsheets\u002Fsql",{"title":1553,"path":1554,"stem":1555,"icon":1556},"Typescript","\u002Fcheatsheets\u002Ftypescript","cheatsheets\u002Ftypescript","material-icon-theme:typescript",{"title":1558,"path":1559,"stem":1560,"icon":1561},"Vercel","\u002Fcheatsheets\u002Fvercel","cheatsheets\u002Fvercel","vscode-icons:file-type-light-vercel",{"title":1563,"path":1564,"stem":1565,"icon":1566},"Vue","\u002Fcheatsheets\u002Fvue","cheatsheets\u002Fvue","material-icon-theme:vue",{"title":1568,"path":1569,"stem":1570,"icon":1571},"Windows","\u002Fcheatsheets\u002Fwindow","cheatsheets\u002Fwindow","material-icon-theme:folder-windows",{"title":1573,"icon":1574,"path":1575,"stem":1576,"children":1577,"page":1333},"Templates","fluent-color:data-pie-24","\u002Ftemplates","templates",[1578,1581,1584,1587,1590],{"title":1379,"path":1579,"stem":1580,"icon":1380},"\u002Ftemplates\u002Fgo","templates\u002Fgo",{"title":1530,"path":1582,"stem":1583,"icon":1533},"\u002Ftemplates\u002Fnext","templates\u002Fnext",{"title":1413,"path":1585,"stem":1586,"icon":1541},"\u002Ftemplates\u002Fnuxt","templates\u002Fnuxt",{"title":1543,"path":1588,"stem":1589,"icon":1546},"\u002Ftemplates\u002Freact","templates\u002Freact",{"title":1563,"path":1591,"stem":1592,"icon":1566},"\u002Ftemplates\u002Fvue","templates\u002Fvue",{"title":1594,"icon":1470,"path":1595,"stem":1596,"children":1597,"page":1333},"Interviews","\u002Finterviews","interviews",[1598],{"title":1496,"path":1599,"stem":1600,"icon":1499},"\u002Finterviews\u002Fhtml","interviews\u002Fhtml",[1602,1603],{"title":1543,"path":1544,"stem":1545,"children":-1},{"title":1549,"path":1550,"stem":1551,"children":-1}]