Redis Back







1. Introduction

  • Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker.
  • It supports data strucures such as strings(字符串), hashes(哈希), lists(列表), sets(集合), sorted sets(有序集合) with range queries, bitmaps(位圖), hyperloglogs and geospatial indexes with radius queries.
  • 6 strategies(策略) of Redis:
      1. volatile-lru: 從已設置過期的數據集(server.db[i].expires)中挑選最近最少使用的數據淘汰.
      1. volatile-ttl: 從已設置過期的數據集(server.db[i].expires)中挑選將要過期的數據淘汰.
      1. volatile-random: 從已設置過期時間的數據集(server.db[i].expires)中任意選擇數據淘汰.
      1. allkeys-lru: 從數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰.
      1. allkeys-random: 從數據集(server.db[i].dict)中任意選擇數據淘汰.
      1. no-enviction(驅逐): 禁止驅逐數據.







2. Commands

2.1 EXISTS key [key ...]
  • Description: To search whether multiple keys are existed.
  • Return:
    • 1: if the key exists.
    • 0: if the key does not exist.
    • The number of keys existing among the ones specified as arguments. Keys mentioned multiple times and existing are counted multiple times. (Since Redis 3.0.3)
  • Example:

    redis> SET key1 "Hello"
    OK
    redis> EXISTS key1
    (integer) 1
    redis> EXISTS nosuchkey
    (integer) 0
    redis> SET key2 "World"
    OK
    redis> EXISTS key1 key2 nosuchkey
    (integer) 2
    redis>
    
2.2 APPEND key value
  • Description: If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string.
  • Return: The length of the value.
  • Example:

    redis> EXIST mykey
    (integer) 0
    redis> APPEND mykey
    (integer) 0
    redis> APPEND mykey "Hello"
    (integer) 5
    redis> APPEND mykey " World"
    (integer) 11
    redis> GET mykey
    "Hello World"
    redis>
    
2.3 DEL key [key ...]
  • Description: To delete keys.
  • Return: The number of keys that were removed.
  • Example:

    redis> SET key1 "Hello"
    OK
    redis> SET key2 "World"
    OK
    redis> DEL key1 key2 key3
    (integer) 2
    redis>
    
2.4 SET key value [EX seconds] [PX milliseconds] [NX|XX]
  • Description: Set key to hold the string value. If key already holds a value, it is overwritten, regardless of its type.
  • Options:
    • EX (seconds): Set the specified expire time, in seconds.
    • PX (milliseconds): Set the specified expire time, in milliseconds.
    • NX: Only set the key if it does not already exist.
    • XX: Only set the key if it already exist.
  • Return:
    • OK: if SET was executed correctly.
    • (nil): a Null Bulk Reply is returned if the SET operation was not performed because the user specified the NX or XX option but the condition was not met.
  • Example:

    redis> SET mykey "Hello"
    OK
    redis> GET mykey
    "Hello"
    redis>
    
2.5 GET key
  • Description: Get the value of key.
  • Return:
    • Value: the value of key.
    • (nil): a Null Bulk Reply is returned if the key does not exist.
  • Example:

    redis> GET nonexisting
    (nil)
    redis> SET mykey "Hello"
    OK
    redis> GET mykey
    "Hello"
    redis>
    
2.6 KEYS pattern
  • Description: Returns all keys matching pattern.
  • Options: pattern (Use \ to escape special characters if you want to match them verbatim.)
    • h?llo: matches hello, hallo and hxllo.
    • h*llo: matches hllo, hxxxxxxxxxllo.
    • h[ae]llo: matches hello and hallo, but not hillo.
    • hello: matches hallo, hbllo, ... but not hello.
    • h[a-c]llo: matches hallo, hbllo and hcllo.
  • Return: list of keys matching pattern.
  • Example:

    redis> GET nonexisting
    (nil)
    redis> SET mykey "Hello"
    OK
    redis> GET mykey
    "Hello"
    redis>
    
2.7 INCR key
  • Description: Increments the number stored at key by one.
  • Note: This is a string operation because Redis does not have a dedicated integer type. The string stored at the key is interpreted as a base-10 64 bit signed integer to execute the operation.
  • Return: the value of key after the increment.
  • Example:

    redis> SET mykey "10"
    OK
    redis> INCR mykey
    (integer) 11
    redis> GET mykey
    "11"
    redis>
    
2.8 DECR key
  • Description: Decrements the number stored at key by one.
  • Note: This operation is limited to 64 bit signed integers.
  • Return: the value of key after the decrement.
  • Example:

    redis> SET mykey "10"
    OK
    redis> DECR mykey
    (integer) 9
    redis> SET mykey "234293482390480948029348230948"
    OK
    redis> DECR mykey
    ERR value is not an integer or out of range
    redis>
    
2.9 INCRBY key increment
  • Description: Increments the number stored at key by increment.
  • Note: An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
  • Return: the value of key after the increment.
  • Example:

    redis> SET mykey "10"
    OK
    redis> INCRBY mykey 5
    (integer) 15
    redis>
    
2.10 DECRBY key decrement
  • Description: Decrements the number stored at key by decrement.
  • Note: An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
  • Return: the value of key after the decrement.
  • Example:

    redis> SET mykey "10"
    OK
    redis> DECRBY mykey 3
    (integer) 7
    redis>
    
2.11 More Commands







3. Usages in PHP

3.1 Connect
  • Description: Connect to a redis.
  • Return:
    • true: success
    • false: failure
  • Example:

    <?php  
    $redis = new redis();  
    $result = $redis->connect('127.0.0.1', 6379);  
    var_dump($result);    // bool(true)  
    ?>
    
3.2 Set
  • Description: set the value of a key.
  • Return:
    • true: success
    • false: failure
  • Example:

    <?php  
    $redis = new redis();  
    $redis->connect('127.0.0.1', 6379);  
    $result = $redis->set('test',"11111111111");  
    var_dump($result);    // bool(true)
    ?>
    
3.3 Get
  • Description: get the value of a key.
  • Return:
    • value: the value of the specific key
    • false: key does not exist
  • Example:

    <?php  
    $redis = new redis();  
    $redis->connect('127.0.0.1', 6379);  
    $result = $redis->set('test',"11111111111");  
    var_dump($result);    // string(11) "11111111111"
    ?>
    
3.4 Delete
  • Description: to delete the key.
  • Options: an array of keys
  • Return:
    • value: the number of deleted keys
  • Example:

    <?php  
    $redis = new redis();  
    $redis->connect('127.0.0.1', 6379);  
    $redis->set('test',"1111111111111");  
    echo $redis->get('test');   // 1111111111111  
    $redis->delete('test');  
    var_dump($redis->get('test'));  // bool(false)  
    ?>
    
3.5 Set, Setnx, Setxx
  • Description: to set the value of a key
  • Return:
    • true: success
    • false: failure
  • Example:

    <?php  
    $redis = new redis();  
    $redis->connect('127.0.0.1', 6379);  
    $redis->set('test',"1111111111111");  
    $redis->setnx('test',"22222222");  
    echo $redis->get('test');  // 1111111111111  
    $redis->delete('test');  
    $redis->setnx('test',"22222222");  
    echo $redis->get('test');  // 22222222  
    ?>
    
3.6 Exists
  • Description: to whether a key is existed
  • Return:
    • true: success
    • false: failure
  • Example:

    <?php  
    $redis = new redis();  
    $redis->connect('127.0.0.1', 6379);  
    $redis->set('test',"1111111111111");  
    var_dump($redis->exists('test'));  // bool(true)  
    ?>
    
3.7 Incr
  • Description: to increase the value of a key by one.
  • Return: the new value after the increment
  • Example:

    <?php  
    $redis = new redis();  
    $redis->connect('127.0.0.1', 6379);  
    $redis->set('test',"123");  
    var_dump($redis->incr("test"));  // int(124)  
    var_dump($redis->incr("test"));  // int(125)  
    ?>
    
3.8 Decr
  • Description: to decrease the value of a key by one.
  • Return: the new value after the decrement
  • Example:

    <?php  
    $redis = new redis();  
    $redis->connect('127.0.0.1', 6379);  
    $redis->set('test',"123");  
    var_dump($redis->decr("test"));  // int(122)  
    var_dump($redis->decr("test"));  // int(121)  
    ?>
    
3.9 More Usages







4. Usages in Laravel

4.1

results matching ""

    No results matching ""