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);
});