In-memory data structures, caching strategies, pub/sub, and persistence.
SET key value EX 3600SET session:abc "userData" EX 3600 NXMSET / MGETMSET k1 v1 k2 v2; MGET k1 k2INCR / INCRBY / DECRINCR visits:2024-01-01; INCRBY balance 500HSET / HGET / HGETALLHSET user:1 name "Alice" age 30; HGETALL user:1LPUSH / RPUSH / LRANGELPUSH jobs "task1"; LRANGE jobs 0 -1SADD / SMEMBERS / SINTERSADD tags:post1 php redis; SINTER tags:post1 tags:post2ZADD key score memberZADD leaderboard 4200 "alice" 3800 "bob"ZRANGE / ZREVRANGEZREVRANGE leaderboard 0 9 WITHSCORESZRANK / ZREVRANKZREVRANK leaderboard "alice" // returns 0 (top)ZINCRBY key amount memberZINCRBY leaderboard 50 "alice"ZRANGEBYSCORE key min maxZRANGEBYSCORE events 1700000000 +inf LIMIT 0 20ZPOPMIN / ZPOPMAXZPOPMIN priority_queue 1 // dequeue next taskSETNX / SET NX EXSET lock:job1 "worker1" NX EX 30EXPIRE / EXPIREAT / TTLTTL session:abc; EXPIREAT cache:menu 1735689600PERSIST keyPERSIST config:settingsOBJECT ENCODING keyOBJECT ENCODING user:1 // "ziplist" or "hashtable"SCAN cursor MATCH patternSCAN 0 MATCH "session:*" COUNT 100maxmemory / eviction policyCONFIG SET maxmemory-policy allkeys-lruPUBLISH channel messagePUBLISH notifications "{\"type\":\"order\",\"id\":42}"SUBSCRIBE / PSUBSCRIBEPSUBSCRIBE "order.*" // matches order.paid, order.shippedXADD / XREAD (Streams)XADD events * action "login" user "alice"XGROUP CREATE / XREADGROUPXGROUP CREATE events mygroup $ MKSTREAMXACK stream group idXACK events mygroup 1700000000000-0XLEN / XRANGE / XTRIMXTRIM events MAXLEN ~ 10000MULTI / EXEC / DISCARDMULTI; INCR views; ZADD timeline 100 post1; EXECWATCH keyWATCH balance; MULTI; DECRBY balance 100; EXECEVAL script numkeys keys argsEVAL "return redis.call('GET', KEYS[1])" 1 mykeyPIPELINEpipe = r.pipeline(); pipe.set('a',1); pipe.get('a'); pipe.execute()DEBUG SLEEP / OBJECT FREQOBJECT FREQ mykey // requires maxmemory-policy *-lfuINFO server / INFO statsINFO stats | grep keyspace_hitsRDB (snapshot) vs AOFappendonly yes; appendfsync everysec // AOF configBGSAVE / BGREWRITEAOFBGSAVE; LASTSAVE // check time of last successful saveREPLICAOF host portREPLICAOF 192.168.1.10 6379Redis Sentinelsentinel monitor mymaster 127.0.0.1 6379 2Redis Clustercluster-enabled yes; cluster-config-file nodes.confACL SETUSER / ACL LISTACL SETUSER api on >secret ~cache:* +GET +SET