key operation method

Method list

Method name Parameter Description Notes
set $key, $val, $timeout = 0 Set a key and set the expiration time in seconds The $timeout value can be int (expiration time seconds), can be string("NX","XX"), or array['NX', 'EX'=>10]
get $key Get a key
getRange $key, $start, $end Return substring
getSet $key, $value Return the old value of the key and set the new value
getBit $key, $offset Get the bit value on the specified offset
mGet $keys Get the value of multiple keys (parameters can be string or array) In the cluster, it will be handled separately
setBit $key, $offset, $value Set the bit value of the offset
setEx $key, $expireTime, $value Set value and expiration time (seconds)
setNx $key, $value Set the value of key when the key does not exist.
setRange $key, $offset, $value Set the value of the offset
strLen $key Returns the length of the string value stored by key
mSet $data Set the value of multiple keys, the parameter is an associative array
mSetNx $data When all keys do not exist, set multiple key values, the parameters are the same as mSet In the cluster, the keys will be processed separately
pSetEx $key, $expireTime, $value Same as setEx, the expiration time is milliseconds
incr $key Self-increase 1
incrBy $key, $value Increase the value of $value
incrByFloat $key, $value Increase $value floating point value
decr $key Self-reduction 1
decrBy $key, $value Self-decrementing $value
appEnd $key, $value Append string
scan &$cursor, $pattern=null, $count=null Iterate string key name Cluster mode cannot be used

If the serialization configuration is enabled, getRange, setRange, getBit, setBit, strLen, self-incrementing and decrementing commands, append, etc. will be invalidated.

In the cluster, batch settings, batch acquisition are all processed by splitting arrays, so the characteristics of mSetNx will be invalid.

Instance


go(function () {
    $redis = new \EasySwoole\Redis\Redis(new \EasySwoole\Redis\Config\RedisConfig([
        'host'      => '127.0.0.1',
        'port'      => '6379',
        'auth'      => 'easyswoole',
        'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_NONE
    ]));
    $key = 'test';
    $value = 1;
    $data = $redis->del($key);
    var_dump($data);
    $data = $redis->set($key, $value);
    var_dump($data);
    $data = $redis->set($key, $value,'XX');
    var_dump($data);
    $data = $redis->set($key, $value,'NX');
    var_dump($data);
    $data = $redis->set($key, $value,['NX','EX'=>20]);
    var_dump($data);
    $data = $redis->set($key, $value,['NX','PX'=>20000]);
    var_dump($data);

    $data = $redis->get($key);
    var_dump($data);

    $data = $redis->exists($key);
    var_dump($data);

    $data = $redis->set($key, $value);
    var_dump($data);
    $value += 1;
    $data = $redis->incr($key);
    var_dump($data);

    $value += 10;
    $data = $redis->incrBy($key, 10);
    var_dump($data);

    $value -= 1;
    $data = $redis->decr($key);
    var_dump($data);

    $value -= 10;
    $data = $redis->decrBy($key, 10);
    var_dump($data);

    $key = 'stringTest';
    $value = 'tioncico';
    $redis->set($key, $value);
    $data = $redis->getRange($key, 1, 2);
    var_dump($data);

    $data = $redis->getSet($key, $value . 'a');
    var_dump($data);
    $redis->set($key, $value);

    $bitKey = 'testBit';
    $bitValue = 10000;
    $redis->set($bitKey, $bitValue);
    $data = $redis->setBit($bitKey, 1, 0);
    var_dump($data);
    $data = $redis->getBit($key, 1);
    var_dump($data);

    $field = [
        'stringField1',
        'stringField2',
        'stringField3',
        'stringField4',
        'stringField5',
    ];
    $value = [
        1,
        2,
        3,
        4,
        5,
    ];
    $data = $redis->mSet([
        "{$field[0]}" => $value[0],
        "{$field[1]}" => $value[1],
        "{$field[2]}" => $value[2],
        "{$field[3]}" => $value[3],
        "{$field[4]}" => $value[4],
    ]);
    var_dump($data);
    $data = $redis->mGet([$field[3], $field[2], $field[1]]);
    var_dump($data);

    $data = $redis->setEx($key, 1, $value[0] . $value[0]);
    var_dump($data);
    var_dump($redis->get($key));

    $data = $redis->pSetEx($key, 1, $value[0]);
    var_dump($data);
    var_dump($redis->get($key));

    $redis->del($key);
    $data = $redis->setNx($key, 1);
    var_dump($data);

    $redis->del($field[0]);
    $data = $redis->mSetNx([
        "{$field[0]}" => $value[0],
        "{$field[1]}" => $value[1],
    ]);
    var_dump($data);
    var_dump( $redis->get($field[1]));
    $redis->del($field[1]);
    $data = $redis->mSetNx([
        "{$field[0]}" => $value[0] + 1,
        "{$field[1]}" => $value[1] + 1,
    ]);
    var_dump($data);
    var_dump($redis->get($field[0]));

    $data = $redis->setRange($field[0], 1, 1);
    var_dump($data);
    var_dump($redis->get($field[0]));

    $data = $redis->strLen($field[0]);
    var_dump($data);

    $redis->set($key, 1);
    $data = $redis->incrByFloat($key, 0.1);
    var_dump($data);
    $data = $redis->appEnd($field[0], '1');
    var_dump($data);
    var_dump($redis->get($field[0]));

    //Iterative test
    $cursor = 0;//Iteration initial value 0
    $redis->flushAll();
    $redis->set('xxxa', 'Alan');
    $redis->set('xxxb', 'Alan');
    $redis->set('xxxc', 'Alan');
    $redis->set('xxxd', 'Alan');
    $data = [];
    do {
        //$cursor is set once for each iteration, and 0 means iterative completion
        $keys = $redis->scan($cursor, 'xxx*', 1);
        $data = array_merge($data,$keys);
    } while ($cursor);
    var_dump($data);
});