title: Redis coroutine client meta:

  • name: description content: Redis coroutine client,Implemented by swoole coroutine client,Covers the method of redis 99%
  • name: keywords content: swoole|swoole extension|swoole framework|EasySwoole redis| Swoole Redis coroutine client|swoole Redis|Redis coroutine

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

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

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

Instance

  1. go(function () {
  2. $redis = new \EasySwoole\Redis\Redis(new \EasySwoole\Redis\Config\RedisConfig([
  3. 'host' => '127.0.0.1',
  4. 'port' => '6379',
  5. 'auth' => 'easyswoole',
  6. 'serialize' => \EasySwoole\Redis\Config\RedisConfig::SERIALIZE_NONE
  7. ]));
  8. $key = 'test';
  9. $value = 1;
  10. $data = $redis->del($key);
  11. var_dump($data);
  12. $data = $redis->set($key, $value);
  13. var_dump($data);
  14. $data = $redis->set($key, $value,'XX');
  15. var_dump($data);
  16. $data = $redis->set($key, $value,'NX');
  17. var_dump($data);
  18. $data = $redis->set($key, $value,['NX','EX'=>20]);
  19. var_dump($data);
  20. $data = $redis->set($key, $value,['NX','PX'=>20000]);
  21. var_dump($data);
  22. $data = $redis->get($key);
  23. var_dump($data);
  24. $data = $redis->exists($key);
  25. var_dump($data);
  26. $data = $redis->set($key, $value);
  27. var_dump($data);
  28. $value += 1;
  29. $data = $redis->incr($key);
  30. var_dump($data);
  31. $value += 10;
  32. $data = $redis->incrBy($key, 10);
  33. var_dump($data);
  34. $value -= 1;
  35. $data = $redis->decr($key);
  36. var_dump($data);
  37. $value -= 10;
  38. $data = $redis->decrBy($key, 10);
  39. var_dump($data);
  40. $key = 'stringTest';
  41. $value = 'tioncico';
  42. $redis->set($key, $value);
  43. $data = $redis->getRange($key, 1, 2);
  44. var_dump($data);
  45. $data = $redis->getSet($key, $value . 'a');
  46. var_dump($data);
  47. $redis->set($key, $value);
  48. $bitKey = 'testBit';
  49. $bitValue = 10000;
  50. $redis->set($bitKey, $bitValue);
  51. $data = $redis->setBit($bitKey, 1, 0);
  52. var_dump($data);
  53. $data = $redis->getBit($key, 1);
  54. var_dump($data);
  55. $field = [
  56. 'stringField1',
  57. 'stringField2',
  58. 'stringField3',
  59. 'stringField4',
  60. 'stringField5',
  61. ];
  62. $value = [
  63. 1,
  64. 2,
  65. 3,
  66. 4,
  67. 5,
  68. ];
  69. $data = $redis->mSet([
  70. "{$field[0]}" => $value[0],
  71. "{$field[1]}" => $value[1],
  72. "{$field[2]}" => $value[2],
  73. "{$field[3]}" => $value[3],
  74. "{$field[4]}" => $value[4],
  75. ]);
  76. var_dump($data);
  77. $data = $redis->mGet([$field[3], $field[2], $field[1]]);
  78. var_dump($data);
  79. $data = $redis->setEx($key, 1, $value[0] . $value[0]);
  80. var_dump($data);
  81. var_dump($redis->get($key));
  82. $data = $redis->pSetEx($key, 1, $value[0]);
  83. var_dump($data);
  84. var_dump($redis->get($key));
  85. $redis->del($key);
  86. $data = $redis->setNx($key, 1);
  87. var_dump($data);
  88. $redis->del($field[0]);
  89. $data = $redis->mSetNx([
  90. "{$field[0]}" => $value[0],
  91. "{$field[1]}" => $value[1],
  92. ]);
  93. var_dump($data);
  94. var_dump( $redis->get($field[1]));
  95. $redis->del($field[1]);
  96. $data = $redis->mSetNx([
  97. "{$field[0]}" => $value[0] + 1,
  98. "{$field[1]}" => $value[1] + 1,
  99. ]);
  100. var_dump($data);
  101. var_dump($redis->get($field[0]));
  102. $data = $redis->setRange($field[0], 1, 1);
  103. var_dump($data);
  104. var_dump($redis->get($field[0]));
  105. $data = $redis->strLen($field[0]);
  106. var_dump($data);
  107. $redis->set($key, 1);
  108. $data = $redis->incrByFloat($key, 0.1);
  109. var_dump($data);
  110. $data = $redis->appEnd($field[0], '1');
  111. var_dump($data);
  112. var_dump($redis->get($field[0]));
  113. //Iterative test
  114. $cursor = 0;//Iteration initial value 0
  115. $redis->flushAll();
  116. $redis->set('xxxa', 'Alan');
  117. $redis->set('xxxb', 'Alan');
  118. $redis->set('xxxc', 'Alan');
  119. $redis->set('xxxd', 'Alan');
  120. $data = [];
  121. do {
  122. //$cursor is set once for each iteration, and 0 means iterative completion
  123. $keys = $redis->scan($cursor, 'xxx*', 1);
  124. $data = array_merge($data,$keys);
  125. } while ($cursor);
  126. var_dump($data);
  127. });