Redis five basic types of data

Redis data types

  Redis supports five data types: String (String), Hash (hash), List (list), Set (collection) and Zset (sorted set: an ordered set).

Five data types usage scenarios

Redis-server connection

1 $redis-cli
2 redis 127.0.0.1:6379>
3 redis 127.0.0.1:6379> PING
4 
5 $ redis-cli -h host -p port -a password

Redis的key 

  Normal operation (More Actions https://www.runoob.com/redis/redis-keys.html )

1 Keys *          # list all the key 
2 EXISTS key   # to determine whether there is a key 
3 the Move key db # currently there is no library, other libraries removed the 
4 The expire key   # seconds: set the expiration for a given key Of course, there are times in milliseconds and so on 
5 ttl key         # to see how long expired -1 means never expire -2 is already expired 
6 of the type key     # to view key type

  In the end the demo

[root@localhost ~]# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> move k1 2
(integer) 1
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
127.0.0.1:6379> ttl key
(integer) -2
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> get k1
"v1"
127.0.0.1:6379[2]> select 0
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
127.0.0.1:6379> ttl k1
(integer) -2
127.0.0.1:6379> ttl k2
(integer) -1
127.0.0.1:6379> expire k2 10
(integer) 1
127.0.0.1:6379> ttl k2
(integer) 3
127.0.0.1:6379> get k2
(nil)
127.0.0.1:6379> keys *
1) "k3"
127.0.0.1:6379> type k3
string

Redis的String  

   General Command (More Actions https://www.runoob.com/redis/redis-strings.html )

. 1 SET / GET / del / the append / strlen
 2 Incr is / DECR / incrby / decrby # it must be performed before the digital subtraction 
. 3 GetRange / SetRange
 . 4 SETEX (SET The expire with) second key value / SETNX (SET IF  Not exist)
 . 5 MSET / mget / msetnx
 6 getset (to get re-set)

  Terminal Operations

127.0.0.1:6379> set k3 woshiniba
OK
127.0.0.1:6379> get k3
"woshiniba"
127.0.0.1:6379> append k3 12345
(integer) 14
127.0.0.1:6379> get k3
"woshiniba12345"
127.0.0.1:6379> strlen k3
(integer) 14
127.0.0.1:6379> set k2 2
OK
127.0.0.1:6379> incr k2
(integer) 3
127.0.0.1:6379> incr k2
(integer) 4
127.0.0.1:6379> incr k2
(integer) 5
127.0.0.1:6379> decr k2
(integer) 4
127.0.0.1:6379> decr k2
(integer) 3
127.0.0.1:6379> get k2
"3"
127.0.0.1:6379>incrby K2 3 
(integer) 9
(integer) 6
127.0.0.1:6379> incrby k2 3
127.0.0.1:6379> decrby k2 3
(integer) 6
127.0.0.1:6379> decrby k2 3
(integer) 3
127.0.0.1:6379> incr k3
(error) ERR value is not an integer or out of range
127.0.0.1:6379> getrange k3 0 -1
"woshiniba12345"
127.0.0.1:6379> getrange k3 0 -2
"woshiniba1234"
127.0.0.1:6379> getrange k3 0 8
"woshiniba"
127.0.0.1:6379> setrange k3 0 xxxx
(integer) 14
127.0.0.1:6379> get k3
"xxxxiniba12345"
127.0.0.1:6379> setex k4 10 v4
OK
127.0.0.1:6379> ttl k4
(integer) 4
127.0.0.1:6379> setnx k3 v11
(integer) 0
127.0.0.1:6379> get k3
"xxxxiniba12345"
127.0.0.1:6379> setnx k4 v4
(integer) 1
127.0.0.1:6379> get k4
"v4"
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k3 v3 k4 v4
(integer) 0
127.0.0.1:6379> get k4
"v4"
127.0.0.1:6379> msetnx k3 v3 k4 v4 k5 v5
(integer) 0
127.0.0.1:6379> get k5
(nil)
127.0.0.1:6379> keys *
1) "k2"
2) "k4"
3) "k1"
4) "k3"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "k1"
127.0.0.1:6379[2]> del k1
(integer) 1
127.0.0.1:6379[2]> select 0
OK

Redis's List  

  Normal operation (More Actions https://www.runoob.com/redis/redis-lists.html )

. 1 LPUSH / RPUSH / Lrange
 2 lpop / RPOP
 . 3 the lindex # obtained in accordance with the index of the element index 
. 4  LLEN
 . 5 lrem Key # puncturing the n value 
. 6 LTRIM Key # Start index End index values taken after the specified range is assigned to Key 
. 7 rpoplpush # original list object list 
. 8  LSET Key index value
 . 9 linset Key before / After value 1 value 2 

   Terminal Operations

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> LPUSH list01 1 2 3 4 5
(integer) 5
127.0.0.1:6379> LRANGE list01 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> RPUSH list02 1 2 3 4 5
(integer) 5
127.0.0.1:6379> LRANGE list02 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> LPOP list01
"5"
127.0.0.1:6379> LPOP list02
"1"
127.0.0.1:6379> RPOP list01
"1"
127.0.0.1:6379> RPOP list02
"5"
127.0.0.1:6379> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> LINDEX list01 0
"4"
127.0.0.1:6379> LINDEX list02 0
"2"
127.0.0.1:6379> LLEN list01
(integer) 3
127.0.0.1:6379> RPUSH list03 1 1 1 2 2 2 3 3 3 4 5 6
(integer) 12
127.0.0.1:6379> LREM list03 2 2
(integer) 2
127.0.0.1:6379> lrange list03 0 -1
 1) "1"
 2) "1"
 3) "1"
 4) "2"
 5) "3"
 6) "3"
 7) "3"
 8) "4"
 9) "5"
10) "6"
127.0.0.1:6379> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> lset list01 1 x
OK
127.0.0.1:6379> LRANGE list01 0 -1
1) "4"
2) "x"
3) "2"
127.0.0.1:6379> LINSERT list01 before x Python
(integer) 4
127.0.0.1:6379> LRANGE list01 0 -1
1) "4"
2) "Python"
3) "x"
4) "2"
127.0.0.1:6379> LINSERT list01 after x C++
(integer) 5
127.0.0.1:6379> LRANGE list01 0 -1
1) "4"
2) "Python"
3) "x"
4) "C++"
5) "2"

summary:

  left right can be inserted to add

  If the key does not exist, create a new list

  Ruoguo key exists, add content

  Ruoguo values ​​are all removed, the corresponding button disappeared

  List operation both head and tail high efficiency, but if the intermediate element is operated, the efficiency is very bleak    

Redis's Set  

  Normal operation ( More Actions https://www.runoob.com/redis/redis-sets.html  

. 1 Sadd / smembers / sismember
 2 SCard # Get the number of elements inside the set 
. 3 Srem Key value # delete elements in a set 
. 4 srandmember Key # some integer (a few random number) 
. 5 SPOP Key # random popping 
. 6  SMOVE key1 key2 in the key1 key1 where a value is assigned a value in the key2
 . 7  related to the set difference: the sdiff
 . 8          deposit: Sinter
 . 9          and: sunion 

   Terminal Operations

127.0.0.1:6379> sadd set01 1 1 2 2 3 3
(integer) 3
127.0.0.1:6379> SMEMBERS set01
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SISMEMBER set01 1
(integer) 1
127.0.0.1:6379> SCARD set01
(integer) 3
127.0.0.1:6379> SREM set01 1
(integer) 1
127.0.0.1:6379> SMEMBERS set01
1) "2"
2) "3"
127.0.0.1:6379> SADD set01 1 2 3 4 5 6 7 8 9
(integer) 7
127.0.0.1:6379> SRANDMEMBER set01 3
1) "9"
2) "2"
3) "1"
127.0.0.1:6379> SRANDMEMBER set01 3
1) "8"
2) "3"
3) "5"
127.0.0.1:6379> SRANDMEMBER set01 3
1) "8"
2) "7"
3) "3"
127.0.0.1:6379> SMEMBERS set01
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
127.0.0.1:6379> SPOP set01
"3"
127.0.0.1:6379> SMEMBERS set01
1) "1"
2) "2"
3) "4"
4) "5"
5) "6"
6) "7"
7) "8"
8) "9"
127.0.0.1:6379> sadd set01 x y z
(integer) 3
127.0.0.1:6379> sadd set02 x y z
(integer) 3
127.0.0.1:6379> SMOVE set01 set02 5
(integer) 1
127.0.0.1:6379> SMEMBERS set02
1) "y"
2) "5"
3) "x"
4) "z"
127.0.0.1:6379> del set01
(integer) 1
127.0.0.1:6379> del set02
(integer) 1
127.0.0.1:6379> keys * 
1) "list01"
2) "list03"
3) "list02"
127.0.0.1:6379> sadd set01 1 2 3 4 5 
(integer) 5
127.0.0.1:6379> sadd set02 1 2 3 a b
(integer) 5
127.0.0.1:6379> sdiff set01 set02
1) "4"
2) "5"
127.0.0.1:6379> SINTER set01 set02
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SUNION set01 set02
1) "5"
2) "3"
3) "2"
4) "b"
5) "a"
6) "4"
7) "1"

Redis的Hash  

   Normal operation (More Actions https://www.runoob.com/redis/redis-hashes.html )  

. 1 HSET / hget / hmset / hmget / hgetall / HDEL
 2  hlen
 . 3  hexists key in a key inside the key value
 . 4 hkeys / hvals
 . 5 hincrby / hincrbyfloat
 . 6 hsetnx

   Terminal Operations

127.0.0.1:6379> hset user id 11
(integer) 1
127.0.0.1:6379> hget user id
"11"
127.0.0.1:6379> hset user name z3
(integer) 1
127.0.0.1:6379> hget user name
"z3"
127.0.0.1:6379> hmset customer id 11 name li4 age 26
OK
127.0.0.1:6379> hmget customer id name age
1) "11"
2) "li4"
3) "26"
127.0.0.1:6379> HGETALL customer
1) "id"
2) "11"
3) "name"
4) "li4"
5) "age"
6) "26"
127.0.0.1:6379> hdel user name 
(integer) 1
127.0.0.1:6379> hget user id
"11"
127.0.0.1:6379> hlen customer
(integer) 3
127.0.0.1:6379> hexists customer id
(integer) 1
127.0.0.1:6379> hkeys customer
1) "id"
2) "name"
3) "age"
127.0.0.1:6379> hvals customer
1) "11"
2) "li4"
3) "26"
127.0.0.1:6379> HINCRBY customer age 2
(integer) 28
127.0.0.1:6379> HINCRBY customer age 2
(integer) 30
127.0.0.1:6379> HINCRBY customer age 2
(integer) 32
127.0.0.1:6379> hset customer score 91.5
(integer) 1
127.0.0.1:6379> HINCRBYFLOAT customer score 4
"95.5"
127.0.0.1:6379> HSETNX customer age 26
(integer) 0
127.0.0.1:6379> HSETNX customer email [email protected]
(integer) 1

Redis of Zset  

  Normal operation (More Actions https://www.runoob.com/redis/redis-sorted-sets.html

1  before adding the value of a scroe in the set on the basis of k1 v1 v2 v3, now zset K1 score V1 score2 V2
 2 Zadd / Z Range The
 . 3  zrangebyscore Key start score End score
 . 4  vaule value corresponding role at zrem key a score is to remove the element
 . 5 zcard / zcount key score interval / zrank key values action values is obtained index values / zscore Key corresponding values obtained points
 . 6  zrevrank Key values the value function is the reverse order to obtain the index value
 . 7  zrevrange
 . 8  zrevrangebyscore Key end score start score
 . 9 zrangebyscore Key start score end score withscores (does not include role limit how many steps are beginning to return restrictions limit subscript step 

   Terminal Operations

127.0.0.1:6379> zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5
(integer) 5
127.0.0.1:6379> zrange zset01 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> zrange zset01 0 -1 withscores
 1) "v1"
 2) "60"
 3) "v2"
 4) "70"
 5) "v3"
 6) "80"
 7) "v4"
 8) "90"
 9) "v5"
10) "100"
127.0.0.1:6379> ZRANGEBYSCORE zset01 60 90 
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> ZRANGEBYSCORE zset01 60 (90 
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> ZRANGEBYSCORE zset01 (60 (90 
1) "v2"
2) "v3"
127.0.0.1:6379> ZRANGEBYSCORE zset01 60 90 limit 2 2
1) "v3"
2) "v4"
127.0.0.1:6379> zrem zset01 v5
(integer) 1
127.0.0.1:6379> zrange zset01 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> ZRANGE zset01 0 -1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
127.0.0.1:6379> zcard zset01
(integer) 4
127.0.0.1:6379> ZCOUNT zset01 60 80
(integer) 3
127.0.0.1:6379>Zset01 v4 ZRANK 
"90"
127.0.0.1:6379> ZSCORE zset01 v4
(integer) 3
127.0.0.1:6379> ZREVRANK zset01 v4
(integer) 0
127.0.0.1:6379> ZREVRANGE zset01 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379> ZREVRANGEBYSCORE zset01 90 60 withscores limit 2 2
1) "v2"
2) "70"
3) "v1"
4) "60"
127.0.0.1:6379> ZREVRANGEBYSCORE zset01 90 60 withscores limit 0 2
1) "v4"
2) "90"
3) "v3"
4) "80"
127.0.0.1:6379> 

  

 

Guess you like

Origin www.cnblogs.com/Alexephor/p/11455875.html