Installation

Docker Img

  • 1 $ docker pull redis

  • 2.1 $ docker run –name some-redis -d redis
    • This image includes EXPOSE 6379 (the redis port), so standard container linking will make it automatically available to the linked containers (as the following examples illustrate).
  • 2.2 $ docker run –name some-redis -d redis redis-server –appendonly yes
    • If persistence is enabled, data is stored in the VOLUME /data, which can be used with –volumes-from some-volume-container or -v /docker/host/dir:/data
  • 3 docker run –name some-app –link some-redis:redis -d application-that-uses-redis

Common Command

redis-cli

1.String

command description
Set name ray  
Get name  
Setnx name ray if name exists, return 0, otherwise, 1
Mset name ray age 23 salary 6666666 set multiple keys
Msetnx name lee age 23 hoby basketball if any attr exists, return 0, otherwise, 1
Mget name age salary get multiple keys
Getset name lee get name & set name
Setrange name 3 lee replace the first 3 letters
Getrange name 3 6 get substring from position 3~6
Append name .com  
Incr age +1
Incrby age 6 +6
Decr age -1
Decrby age 6 -6
Strlen name string length

2.Hash

command description
Hset user:001 name ray  
Hsetnx user name lee  
Hget user:001 name  
Hmset user:003 name lee age 23 set multiple attrs
Hmget user:003 name age get multiple attrs
Hincrby user:003 age 3 +3
Hexists user:003 name check if there exists name
Hlen user:003 return length
Hkeys user:003 return keys
Hvals user:003 return vals
Hgetall user:003 return keys & vals
Hdel user:003 name del attr

3.list

command description
Lpush list1 “world” left push
Lrange list1 0 -1 read all list from left side
rpush list2 “ray”  
Linsert list3 before “ray” “new item” insert before
Linsert list3 after “ray” “new item” insert after
Lset list5 0 “new value” reset a existing attr in list5
Lrem list6 1 “ray” remove a value
Ltrim list7 1 2 remove values except the values in the position 0 & 1
Lpop list8 left pop
rpop list8  
Rpoplpush list1 list2 r pop value list1, left push it to list2
lindex list 0 return the value in the position 0
llen list length

4.set

unsorted

command description
sadd set1 ray  
srem set1 ray  
smembers set1  
spop set1 pop value randomly
sdiff set1 set2 show diff values
Sdiffstore set3 set1 set2 set3 store the diff values of set1&set2
sinter set1 set2 intersection of set1 & set2
sinterstore destination key [key …] store intersection
sunion set1 set2 union set
sunionstore set3 set1 set2  
smove set1 set2 member remove member from set1 to set2
Scard set1 size of set1
sismember set1 “value” whether “value” exists
srandmember set1 2 read 2 values from set1 randomly

sorted set

command description
Zadd sortedset1 1 ray1 zadd setname weight(index no.) value
zrange sortedset1 0 -1 [withscores] withscores is optional
Zrem myzsent ray1  
zincrby sortedset1 10 “ray1”  
zrank sortedset1 ray3 get position
zrevrank sortedset1 ray3 inverted order position
zrangebyscore sortedset1 0 100 withscores return values (index/weight 0~100)
Zcount sortedset1 0 100 return # of values(index/weight 0~100)
zcard sortedset1 return the size of sortedset1
zremrangebyrank sortedset1 0 1 remove value from 0 to 1
zremrangebyscore sortedset1 1 20 Remove all members in a sorted set within the given scores

5 Redis Command

  • Keys-Vals
No. command description
1 keys * keys pattern
2 exists set1 exists key [key …]
3 del set1 del key [key …]
4 expire set1 120 Set a key’s time to live in seconds
5 ttl set1 Get the time to live for a key
6 select database Change the selected database for the current connection
7 move key dababase1 move key into database1
8 persist set1 Remove the expiration from a key
9 randomkey Return a random key from the keyspace
10 rename set1 set01 rename
11 type list1 Determine the type stored at key
  • Server
No. command description
1 ping Ping the server
2 echo message output directly
3 select 2 select [0-16]
4 quit/exit Ping the server
5 dbsize Return the number of keys in the selected database
6 info sys info
7 CONFIG GET  
8 flushdb clear selected db
9 flushall clear all db

6 Redis: Advanced Cmd

  • config file
No. command description
1 redis-server /path/to/redis.conf to specify a config file
2 requirepass password add password
3 master & slave many to many(a slave can access other slaves)
4 save 500 32 snapshotting:save within 500 sec, 32 keys are changed
  • Transaction
No. command description
1 multi Mark the start of a transaction block
2 exec Execute all commands issued after MULTI
3 discard Discard all commands issued after MULTI
  • Subscribe & Publish
No. command description
1 Subscribe tv1 tv2  
2 Publish tv1 “can you see it?”