1, Global command
1. Query key
Keys * query all keys and traverse all key values, complexity O(n)
2. Total number of keys
dbsize queries the total number of keys and directly obtains the total number of keys variable built in redis. The complexity is O(1)
3. Check whether the key exists
exists key returns 1 if it exists and 0 if it does not exist
4. Delete key O(k)
del key [key...] the returned result is the number of keys deleted successfully
5. Key expiration
expire key seconds when the expiration time is exceeded, it will be deleted automatically. The key expires after seconds
Expire key timestamp key expires after the second timestamp
pexpire key milliseconds when the expiration time is exceeded, it will be automatically deleted. The key expires in milliseconds
Pexpireat key milliseconds timestamp key expires after the haos second timestamp
ttl command can view the remaining expiration time of the key hello, unit: seconds (> 0 remaining expiration time; - 1 no expiration time is set; - 2 key does not exist)
pttl is milliseconds
192.168.225.129:6379> expire k2 100 (integer) 1 192.168.225.129:6379> ttl k2 (integer) 91 192.168.225.129:6379> ttl ma (integer) -1 192.168.225.129:6379>
6. Data structure type of key
type key if the hello key is of string type, string will be returned; Returns none if the key does not exist
7. Key rename
rename key newkey
Rename x key newkey will be overwritten only if the newkey does not exist
8. Random return of a key
randomkey
9. Migration key
(1) move key db (not recommended for reproduction) moves the specified key from the source database to the target database
(2)dump+restore
dump key
Restore key ttl value
Dump+restore can realize the function of data migration between different redis instances. The whole migration process is divided into two steps;
1) On the source redis, the dump command will serialize the key values in RDB format
2) On the target redis, the restore command restores the above serialized values, where ttl parameter represents expiration time and ttl=0 represents no expiration time
example:
source redis 192.168.225.129:6379> get redis "world" 192.168.225.129:6379> dump redis "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8" target redis 192.168.225.128:6379> get redis (nil) 192.168.225.128:6379> restore redis 0 "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8" OK 192.168.225.128:6379> get redis "world"
(3)migrate
migrate is actually a combination of dump, restore and del commands, which simplifies the operation steps.
Migrate host port key [ key ...] destination-db timeout [replace]
Execute in source redis
192.168.225.129:6379> migrate 192.168.225.128 6379 flower 0 1000 replace
(migrate the key flower to the library 0 of the target 192.168.225.128:6379. The timeout is 1000 milliseconds. replace means that if the key flower exists in the target library, it will be overwritten)
10. Traversal key
(1) Full traversal key
keys pattern
For example: keys h, keys [R, l] EDIS, keys, etc
(2) Progressive traversal
Scan can effectively solve the blocking problem of keys command. The amount complexity of scan is O(1)
Database management
1. Switch database
select dbIndex
There are 16 databases by default: 0-15. After entering redis, the default is 0 database. Multiple databases are not recommended
2,flushdb / flushall
It is used to clear the database. flushdb only clears the current database, and flushall clears all databases.
2, Operation for key
1. Set value O(1)
set key value [ex] [px] [nx|xx] ex Set the second expiration time for the key value px Sets the millisecond expiration time for the key value nx The key must not exist before it can be set successfully for adding xx And nx On the contrary, the key must exist before it can be successfully set for update setnx,setex With the above nx,ex Same function
2. Get value O(1)
nil if get key does not exist
3. Batch setting value O(k)
mset key value [key value ...]
mset a 1 b 2 c 3 d 4
4. Get the value O(k) in batch, where k is the number of keys
mget key [key ...]
5. Count O(1)
incr key
decr key /inceby key increment /decrby key increment
The returned results are divided into three cases:
if the value is not an integer, an error is returned;
the value is an integer and returns the result after self increment;
if the key does not exist, it will increase automatically according to the value of 0, and the return result is 1.
6. Additional value O(1)
append key value can append a value to the end of the string
7. String length O(1)
strlen key
Each Chinese character occupies 3 word bytes
8. Set and return the original value O(1)
getset key value
9. Sets the character o (n) at the specified position, where n is the length of the string
setrange key offeset value 192.168.225.129:6379> get liming "class4" 192.168.225.129:6379> setrange liming 0 m (integer) 6 192.168.225.129:6379> get liming "mlass4" 192.168.225.129:6379>
10. Get partial string
getrange key start end start and end are the start and end offsets respectively, starting from 0
3, Hash operation
1. Set value
hset key field value
The hsetnx command is also provided
Eg: hset user:1 name tom
2. Get value
hget key field 192.168.225.129:6379> hset user:1 name Tom (integer) 1 192.168.225.129:6379> hget user:1 name "Tom" 192.168.225.129:6379> hget user:1 age (nil)
3. Delete field
hdel key field [field...] will delete one or more fields, and the return result is the number of fiels successfully deleted
4. Calculate the number of field s
hlen key
5. Set or get field value in batch
Hmget key field [field ...]
Hmset key field value [field value]
6. Determine whether the field exists
hexists key field
7. Get all field s
hkeys key
192.168.225.129:6379> hkeys user:1 1) "name" 2) "age" 3) "grand" 4) "city"
8. Get all value s
hvals key
192.168.225.129:6379> hvals user:1 1) "Tom" 2) "20" 3) "3" 4) "beijing"
9. Get all field s and value s
hgetall key
10. hincrby hincrbyfloat scope is field
hincrby key field
hincrbyfloat key field
11. Calculates the length of the value string
hstrlen key field
4, List operation
The list type originally stores multiple ordered strings, which can be repeated
List of 4 operation types
Add rpush, lpush, linsert
Check lrange, lindex, llen
Delete lpop, rpop, lrem, ltrim
Modify lset
Blocking operation blpop, brpop
1. Add
(1) Insert element from right
rpush key value [value...]
(2) Insert element from left
lpush key value [value...]
(3) Insert an element before or after an element
linsert key before|after pivot value
The linsert command will find the element equal to pivot from the list and insert a new element value before or after it
192.168.225.129:6379> rpush mylist a b c d e f b a (integer) 8 192.168.225.129:6379> linsert mylist after f g (integer) 9 192.168.225.129:6379> lrange mylist 0 -1 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" 6) "f" 7) "g" 8) "b" 9) "a"
2. Search
(1) Gets the list of elements within the specified range
lrange key start end index subscripts are 0 to N-1 from left to right, and - 1 to - N from right to left; The end option contains itself
lrange key 0 -1 can get all elements of the list from left to right
lrange mylist 1 3 get the 2nd to 4th elements in the list
(2) Gets the element of the specified subscript in the list
lindex key index
(3) Get list length
llen key
3. Delete
(1) Pop up elements from the right side of the list
rpop key
(2) Pop up elements from the left side of the list
lpop key
(3) Delete the specified element
lrem key count value
The Lrem command will find the element of = value from the list and delete it. It is divided into three cases according to different count s
Count>0,From left to right, delete the most count Elements Count<0,From right to left, delete the most count Absolute value is an element Count=0,Delete all
list listaaa by a a a a java php b a b 192.168.225.129:6379> lrem listaaa 5 a (integer) 5 192.168.225.129:6379> lrange listaaa 0 -1 1) "java" 2) "php" 3) "b" 4) "b" 192.168.225.129:6379> lrem listaaa 3 php (integer) 1 192.168.225.129:6379> lrange listaaa 0 -1 1) "java" 2) "b" 3) "b"
4. Modification
lset key index newValue modifies the element of the specified index subscript
Eg: lset listaaa 1 python output as java python b
5. Blocking operation
blpop key [key ...] timeout
brpop key [key ...] timeout
blpop and brpop are blocking versions of lpop and rpop. Except for different pop-up methods, the use methods are basically the same. timeout blocking time
(1) The list is empty
Brpop list: Test 3 returns after 3 seconds
brpop list:test 0 has been blocked
(2) List is not empty
brpop mylist 0 returns immediately
192.168.225.129:6379> brpop mylist 0 1) "mylist" 2) "a"
5, Set operation (non repeatable)
Operations within a collection
1. Add element
sadd key element [element...] returns the number of elements successfully added
2. Delete element
srem key element [element...] returns the number of elements successfully deleted
3. Calculate the number of elements
The time complexity of scar key is O(1), and the internal variables of redis are used directly
4. Determine whether the element is in the collection
Sismember key element returns 1 in the set, otherwise it returns 0
5. Returns a specified number of elements from a collection at random
Srandmember key [count] count can not be written. The default value is 1
6. Pop up elements randomly from the collection
Spop key [count] supports [count] from version 3.2
7. Get all elements
Small members key, lrange and hgetall are relatively heavy commands. Sometimes sscan can be used to complete them
Set between operations
1. Find the intersection of multiple sets sinter key [key...]
2. Find the union of multiple sets
3. Find the difference set sdiff key [key...] of multiple sets. There are some in the first key and none in the second key
4. Save the results of intersection, union and difference sets
sinterstore destination key [ key ...]
sunionstore destination key [ key ...]
sdiffstore destination key [ key ...]
For example: sinterstore user:1_2:inter user:1 user:2 user:1_2:incr is also a collection type
6, ZADD operation (ordered set)
Within the set
1. Add member time complexity O(log(n)), sadd is O(1)
zadd key score member[score member...] the returned result is the number of successfully added elements
2. Calculate the number of members
The time complexity of zcard key scar is O(1), and the internal variables of redis are used directly
3. Calculate a member's score
zsore key member
4. Calculate the ranking of members
zrank key member
5. Delete member
zrem key member [member ...]
6. Increase members' scores
zincrby key increment member
7. Returns the members of the specified ranking range
zrange key start end [withscores] from low to high
zrevrange key start end [withscores] from high to low
8. Returns the members of the specified score range
Zrange key min max [WithCores] [limit offset count] from low score to high score
Zrevrange key max min [WithCores] [limit offset count] scores from high to low
9. Returns the number of members in the specified score range
zcount key min max
10. Deletes ascending elements within the specified ranking
zremrangebyrank key start end
11. Delete members of the specified score range
zremrangebystore key min max
Set between operations
1. Intersection
2. Union
3. Difference set
4. Save the results of intersection, union and difference sets
7, Pub / sub (publish, subscribe)
1,publish channel message Release news eg: publish channel:sports 'I want to go eatting' 2,subscribe channel [channel .....] Subscribe to messages eg: subscribe channel:sports 3,unsubscribe channel [channel .....] Unsubscribe 4,psubscribe pattern [pattern ......] Subscribe by mode 5,unpsubscribe pattern [pattern ......] Unsubscribe by mode 6,Query subscription pubsub channels View active channels 192.168.225.128:6379> pubsub channels 1) "channel:sports" 2) "__sentinel__:hello" pubsub numsub [channel ......] View channel subscriptions pubsub numsub channel:sports pubsub numpat View mode subscriptions 7,explain: The client enters the subscription state after executing the subscription command, and can only receive four commands: subscribe,psubscribe,unsubscribe,punsubscribe; The newly opened subscription client cannot receive the previous message of this channel because redis Published messages are not persisted.
8, Transaction
8.1 discard , Cancels the execution of all commands within the transaction block 8.2 exec , Execute commands within the transaction block 8.3 multi , Mark the beginning of a transaction block 8.4 unwatch , cancel watch Command for all key Monitoring of 8.5 watch key [key ...] , Monitor one or more key,If before the transaction is executed, this kye The transaction is interrupted by other commands
9, Connection
9.1 auth password , Sign in redis Enter password when 9.2 echo message , Print a specific message message,Used during testing 9.3 ping , Test the connection with the server, and return if it is normal pong 9.4 quit , Request the server to close the connection with the current client 9.5 select index , Switch to the specified database
10, Server (server)
10.1 bgsave , Background asynchronously save data to hard disk 10.2 client setname/client getname , Set and get name for connection 10.3 client kill ip:port , The closing address is ip:port Client for 10.4 client list , Return all connected client information and statistics in a human readable manner 10.5 config get parameter , Get run redis Configuration parameters of the server 10.6 config set parameter value , set up redis Configuration parameters of the server 10.7 config resetstat , Reset info Some statistics of the command 10.8 dbsize , Return to the current database key Number of 10.9 flushall , Empty the whole redis Server data (delete all databases) key) 10.10 flushdb , Clear all in the current database key 10.11 info [section] , return redis Various information and statistics of the server 10.12 lastsave , Return to last redis Time when data was successfully saved to disk 10.13 monitor , Real time print out redis Instructions received by the server 10.14 save , Will current Redis All data snapshots of the instance(snapshot)with RDB Save to hard disk in the form of file 10.15 slaveof host port , Turns the current server into a slave of the specified server 10.16 slowlog subcommand [argument] , Redis A logging system used to record query execution time