当前位置:网站首页>Redis data type (string)

Redis data type (string)

2022-06-11 21:26:00 Don't like learning since childhood~

Redis data type (String)

127.0.0.1:6379> flushall
OK
127.0.0.1:6379> set key1 v1  	#  Set the value 
OK
127.0.0.1:6379> get key1    #  Get value 
"v1"
127.0.0.1:6379> keys *    #  Get all key
1) "key1"
127.0.0.1:6379> exists key1   #  Judge a certain key Whether there is 
(integer) 1
127.0.0.1:6379> APPEND key1 'hello'  #  Append string , If at present key non-existent , Equivalent to  set key 
(integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> STRLEN key1  #  Get string length 
(integer) 7
127.0.0.1:6379> APPEND key1 'Corleone'
(integer) 15
127.0.0.1:6379> STRLEN key1
(integer) 15
127.0.0.1:6379> get key1
"v1helloCorleone"
127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views   #  Set the gain 1
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> incr views
(integer) 3
127.0.0.1:6379> incr views
(integer) 4
127.0.0.1:6379> get views
"4"
127.0.0.1:6379> decr views  #  Set self subtraction 1
(integer) 3
127.0.0.1:6379> decr views
(integer) 2
127.0.0.1:6379> decr views
(integer) 1
127.0.0.1:6379> decr views
(integer) 0
127.0.0.1:6379> decr views
(integer) -1
127.0.0.1:6379> get views
"-1"
127.0.0.1:6379> INCRBY views 10  #  Set step size , Specify increment 
(integer) 9
127.0.0.1:6379> INCRBY views 10
(integer) 19
127.0.0.1:6379> DECRBY views 5   #  Set step size , Specify increment  
(integer) 14
127.0.0.1:6379> DECRBY views 5
(integer) 9

String range

127.0.0.1:6379> set key1 'hello,kuangshen'  #  Set up key1
OK
127.0.0.1:6379> get key1
"hello,kuangshen"
127.0.0.1:6379> GETRANGE key1 0 3   #  Intercepting string  [0,3]
"hell"
127.0.0.1:6379> GETRANGE key1 0 -1   #  Get all the strings   and  get key  It's the same 
"hello,kuangshen"

Replace string

127.0.0.1:6379>  set key2 abcdefg
OK
127.0.0.1:6379> get key2
"abcdefg"
127.0.0.1:6379> SETRANGE key2 1 xx  #  Replace the string starting at the specified position 
(integer) 7
127.0.0.1:6379> get key2
"axxdefg"

setex(set with expire) Set expiration time

setnx(set if not exist) # Does not exist in setting ( It is often used in distributed locks !)

127.0.0.1:6379> setex ky3 30 "hello"   #  Set up key3  The value of is  hello 30 Seconds after expired 
OK
127.0.0.1:6379> ttl key3
(integer) -2
127.0.0.1:6379> ttl key3
(integer) -2
127.0.0.1:6379> ttl ky3
(integer) -2
127.0.0.1:6379> keys *
1) "key2"
2) "key1"
127.0.0.1:6379> setex key3 30 "hello"
OK
127.0.0.1:6379> ttl key3
(integer) 25
127.0.0.1:6379> ttl key3
(integer) 24
127.0.0.1:6379> ttl key3
(integer) 23
127.0.0.1:6379> get key3
"hello"
127.0.0.1:6379> ttl key3
(integer) 3
127.0.0.1:6379> setnx mykey "redis"  #  If mykey non-existent , establish mykey
(integer) 1
127.0.0.1:6379> keys *
1) "mykey"
2) "key2"
3) "key1"
127.0.0.1:6379> ttl key3
(integer) -2
127.0.0.1:6379> setnx mykey "MongoDB"   #  If mykey There is , Create failure 
(integer) 0
127.0.0.1:6379> GET mykey
"redis"

mset : Set multiple values at the same time

mget : Get multiple values at the same time

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3   #  Set multiple values at the same time 
OK
127.0.0.1:6379> keys *
1) "key2"
2) "k2"
3) "key1"
4) "k1"
5) "mykey"
6) "k3"
127.0.0.1:6379> msetnx k1 v1 k4 v4  # msetnx  It's an atomic operation , Or make it together , Or fail together !
(integer) 0
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> mget k1 k2 k3   #  Get multiple values at the same time 
1) "v1"
2) "v2"
3) "v3"

object

set user:1 {
    name:zhangsan,age:3}  #  Set up a user:1  object , The value is  json  Character to save an object 

#  there key It's a clever design :user:{id}:{filed}, So designed in Redis Chinese is completely OK 了 !
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 2
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "2"

getset First get And then again set

127.0.0.1:6379> getset db redis   #  If there is no value , Then return to  nil
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongodb  #  If there is value , Get the original value , And set the new value 
"redis"
127.0.0.1:6379> get db
"mongodb"

Data structures are interlinked !

String Similar usage scenarios :value In addition to our string, it can also be our number !

  • Counter
  • Count the number of multiple units
  • Number of fans
  • Object cache storage !
原网站

版权声明
本文为[Don't like learning since childhood~]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/03/202203011702009335.html