Detaillierter Fall der PHP-Operation Redis

迷茫
Freigeben: 2023-03-05 10:08:02
Original
1444 Leute haben es durchsucht

$redis = new Redis();

verbinden, Link zum Redis-Dienst öffnen

Parameter

Host: Zeichenfolge, Dienstadresse

Port: int, Portnummer

Timeout: Float, Linkdauer (optional, The Standard ist 0, keine Begrenzung der Linkzeit)

Hinweis: Es gibt auch Zeit in redis.conf, der Standardwert ist 300

pconnect, Popen-Links, die nicht aktiv geschlossen werden

Referenz oben

setOption legt den Redis-Modus fest

getOption prüft den durch Redis eingestellten Modus

ping prüft den Verbindungsstatus

get ruft die ab Wert eines Schlüssels (String-Wert)

Wenn der Schlüssel nicht existiert, geben Sie false zurück

set schreibt den Schlüssel und den Wert (String-Wert)

Wenn das Schreiben erfolgreich ist , Rückkehr ture

setex Wert mit Überlebenszeit schreiben

$redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.
Nach dem Login kopieren

setnx Bestimmen Sie, ob es wiederholt wird, schreiben Sie Wert

$redis->setnx('key', 'value');
$redis->setnx('key', 'value');
Nach dem Login kopieren

delete Löschen Sie den Wert des angegebenen Schlüssels

Den gelöschten Schlüssel zurückgeben. Die Zahl (lange Ganzzahl)

$redis->delete('key1', 'key2');
$redis->delete(array('key3', 'key4', 'key5'));
Nach dem Login kopieren

Überlebenszeit eines Schlüssels abrufen

persistent

Entfernen Sie den Schlüssel, dessen Überlebenszeit Zeit ist abgelaufen

Wenn der Schlüssel abläuft, wahr, wenn er nicht abläuft, falsch

mset (kann nur mit Redis-Version 1.1 oder höher verwendet werden)

Mehrere Schlüssel gleichzeitig zuweisen Zeit

$redis->mset(array('key0' => 'value0', 'key1' => 'value1'));
Nach dem Login kopieren

Multi, Exec, Discard

Transaktionsmodus aufrufen oder verlassen

Der Parameter kann Redis::MULTI oder Redis::PIPELINE sein. Der Standardwert ist Redis ::MULTI

Redis::MULTI: mehrere Jede Operation wird als Transaktion ausgeführt

Redis::PIPELINE: ermöglicht das einfache und schnellere Senden von (mehreren) Ausführungsbefehlen an den Server, aber ohne Atomizitätsgarantie

verwerfen: löschen Eine Transaktion

gibt den Wert

multi() zurück, gibt ein Redis-Objekt zurück und wechselt in den Multimodus-Modus, sobald sie in den Multimodus wechselt -mode-Modus: Alle in Zukunft aufgerufenen Methoden geben dasselbe Objekt zurück, nur bis die Methode exec() aufgerufen wird.

Watch, Unwatch (nach dem Testen des Codes kann der genannte Effekt nicht erreicht werden)

Überwachen, ob der Wert eines Schlüssels durch andere Programme geändert wird. Wenn dieser Schlüssel zwischen watch und exec (Methode) geändert wird, schlägt die Ausführung dieser MULTI/EXEC-Transaktion fehl (gibt false zurück)

Unwatch bricht alle Schlüsselparameter ab, die von diesem Programm überwacht werden, List eines Schlüsselpaares

Methodenrückruf. Beachten Sie, dass sich diese Methode in Zukunft ändern kann.
$redis->watch('x');
$ret = $redis->multi() ->incr('x') ->exec();
subscribe *
Nach dem Login kopieren

veröffentlichen *

Inhalte auf einem bestimmten Kanal veröffentlichen. Beachten Sie, dass sich diese Methode in Zukunft ändern kann.

exists

Stellen Sie fest, ob der Schlüssel vorhanden ist. Wenn wahr, aber nicht falsch

incr ist, wird der Wert im Schlüssel incrBy

um 1 erhöht. Wenn der zweite Parameter ausgefüllt ist, wird er um den im Schlüssel ausgefüllten Wert erhöht zweiter Parameter

decr, decrBy
$redis->incr('key1');
$redis->incrBy('key1', 10);
Nach dem Login kopieren

Subtraktion durchführen, die Verwendungsmethode ist die gleiche wie incr

getMultiple

Übergabeparameter

Array bestehend aus Schlüsseln

Parameter zurückgeben

Wenn der Schlüssel vorhanden ist, wird der Wert zurückgegeben, andernfalls wird false zurückgegeben

Zugehörige Vorgänge auflisten
$redis->set('key1', 'value1'); $redis->set('key2', 'value2'); $redis->set('key3', 'value3'); $redis->getMultiple(array('key1', 'key2', 'key3'));
$redis->lRem('key1', 'A', 2);
$redis->lRange('key1', 0, -1);
Nach dem Login kopieren

lPush

Ein Element mit einem Wert links (Kopf) der Liste mit dem Namen „key“ hinzufügen
$redis->lPush(key, value);
Nach dem Login kopieren

rPush

Hinzufügen rechts (Ende) der Liste mit dem Namen key Ein Element mit dem Wert
$redis->rPush(key, value);
Nach dem Login kopieren

lPushx/rPushx

fügt ein Element mit dem Wert links (Kopf)/rechts (Ende) von hinzu die Liste mit dem Namen „key“, wenn der Wert bereits vorhanden ist, nicht hinzufügen
$redis->lPushx(key, value);
Nach dem Login kopieren

lPop/rPop

Das erste Element links (Kopf)/rechts (Ende) der Liste ausgeben benannter Schlüssel, lösche das Element
$redis->lPop('key');
Nach dem Login kopieren

blPop/brPop

Blockversion des Befehls lpop. Das heißt, wenn die Zeitüberschreitung 0 ist und die Liste mit dem Namen „key i“ nicht existiert oder die Liste leer ist, wird der Befehl beendet. Wenn die Zeitüberschreitung > 0 ist und die obige Situation auftritt, warten Sie auf Zeitüberschreitungssekunden. Wenn das Problem nicht behoben ist, führen Sie einen Pop-Vorgang für die Liste aus, beginnend mit der Taste i+1
$redis->blPop('key1', 'key2', 10);
Nach dem Login kopieren

lSize

Rückgabename Wie viele Elemente hat die Liste für den Schlüssel?
$redis->lSize('key');
Nach dem Login kopieren

lIndex, lGet

gibt das Element an der Indexposition in der Liste mit dem Namen key
$redis->lGet('key', 0);
Nach dem Login kopieren

lSet<🎜 zurück >

Weisen Sie den Wert dem Element an der Indexposition in der Liste mit dem Namen „key“ als Wert zu

$redis->lSet(&#39;key&#39;, 0, &#39;X&#39;);
Nach dem Login kopieren
lRange, lGetRange

Gibt die Elemente zwischen Anfang und Ende im zurück Liste mit dem benannten Schlüssel (Ende ist -1, alle zurückgeben)

$redis->lRange(&#39;key1&#39;, 0, -1);
Nach dem Login kopieren
lTrim, listTrim

Die Liste mit dem Namen Schlüssel abfangen, die Elemente zwischen Anfang und Ende beibehalten

$redis->lTrim(&#39;key&#39;, start, end);
Nach dem Login kopieren
lRem , lRemove

Anzahlelemente löschen, deren Wert value in der Liste mit dem Namen „key“ ist. count ist 0, löscht alle Elemente mit Wert, count>0 löscht count Elemente mit Wert von Anfang bis Ende, count<0 löscht |count| Elemente mit Wert von Ende bis Ende

$redis->lRem(&#39;key&#39;, &#39;A&#39;, 2);
Nach dem Login kopieren
lInsert

Suchen Sie in der Liste mit dem Namen „key“ den Wert von „pivot“ und bestimmen Sie, ob „newvalue“ vor oder nach „pivot“ gemäß den Parametern Redis::AFTER | platziert wird. Wenn der Schlüssel nicht vorhanden ist, wird er nicht eingefügt. Wenn der Pivot nicht vorhanden ist, geben Sie -1 zurück.

rpoplpush

$redis->delete('key1'); $redis->lInsert('key1', Redis::AFTER, 'A', 'X'); $redis->lPush('key1', 'A'); $redis->lPush('key1', 'B'); $redis->lPush('key1', 'C'); $redis->lInsert('key1', Redis::BEFORE, 'C', 'X');
$redis->lRange(&#39;key1&#39;, 0, -1);
$redis->lInsert('key1', Redis::AFTER, 'C', 'Y');
$redis->lRange(&#39;key1&#39;, 0, -1);
$redis->lInsert('key1', Redis::AFTER, 'W', 'value');
Nach dem Login kopieren
Geben Sie das Endelement der Liste mit dem Namen srckey zurück und löschen Sie es , und fügen Sie das Element „Gehe zum Kopf der Liste“ mit dem Namen „dstkey“ hinzu existiert, kein Schreiben, gibt false zurück

sRem, sRemove

$redis->delete(&#39;x&#39;, &#39;y&#39;);
$redis->lPush(&#39;x&#39;, &#39;abc&#39;); $redis->lPush(&#39;x&#39;, &#39;def&#39;); $redis->lPush(&#39;y&#39;, &#39;123&#39;); $redis->lPush(&#39;y&#39;, &#39;456&#39;); // move the last of x to the front of y. var_dump($redis->rpoplpush(&#39;x&#39;, &#39;y&#39;));
var_dump($redis->lRange(&#39;x&#39;, 0, -1));
var_dump($redis->lRange(&#39;y&#39;, 0, -1));
string(3) "abc"
array(1) { [0]=> string(3) "def" }
array(3) { [0]=> string(3) "abc" [1]=> string(3) "456" [2]=> string(3) "123" }
Nach dem Login kopieren
Entfernen Sie den Elementwert

sMove

im Satz mit dem Namen key Das Wertelement wird aus der Sammlung mit dem Namen srckey in die Sammlung mit dem Namen dstkey

$redis->sAdd(key , value);
Nach dem Login kopieren

sIsMember, sContains

verschoben. Finden Sie heraus, ob in der Sammlung ein Wertelement mit dem Namen key vorhanden ist wahr, es gibt kein falsch

$redis->sAdd(&#39;key1&#39; , &#39;set1&#39;);
$redis->sAdd(&#39;key1&#39; , &#39;set2&#39;);
$redis->sAdd(&#39;key1&#39; , &#39;set3&#39;);
$redis->sRem(&#39;key1&#39;, &#39;set2&#39;);
Nach dem Login kopieren

sCard, sSize

返回名称为key的set的元素个数

sPop

随机返回并删除名称为key的set中一个元素

sRandMember

随机返回名称为key的set中一个元素,不删除

sInter

求交集

sInterStore

求交集并将交集保存到output的集合

$redis->sInterStore(&#39;output&#39;, &#39;key1&#39;, &#39;key2&#39;, &#39;key3&#39;)
Nach dem Login kopieren

sUnion

求并集

$redis->sUnion(&#39;s0&#39;, &#39;s1&#39;, &#39;s2&#39;);
Nach dem Login kopieren

s0,s1,s2 同时求并集

sUnionStore

求并集并将并集保存到output的集合

$redis->sUnionStore(&#39;output&#39;, &#39;key1&#39;, &#39;key2&#39;, &#39;key3&#39;);
Nach dem Login kopieren

sDiff

求差集

sDiffStore

求差集并将差集保存到output的集合

sMembers, sGetMembers

返回名称为key的set的所有元素

sort

排序,分页等

参数

&#39;by&#39; => &#39;some_pattern_*&#39;,
&#39;limit&#39; => array(0, 1),
&#39;get&#39; => &#39;some_other_pattern_*&#39; or an array of patterns,
&#39;sort&#39; => &#39;asc&#39; or &#39;desc&#39;,
&#39;alpha&#39; => TRUE,
&#39;store&#39; => &#39;external-key&#39;
Nach dem Login kopieren

例子

$redis->delete(&#39;s&#39;); $redis->sadd(&#39;s&#39;, 5); $redis->sadd(&#39;s&#39;, 4); $redis->sadd(&#39;s&#39;, 2); $redis->sadd(&#39;s&#39;, 1); $redis->sadd(&#39;s&#39;, 3);
var_dump($redis->sort(&#39;s&#39;)); // 1,2,3,4,5
var_dump($redis->sort(&#39;s&#39;, array(&#39;sort&#39; => &#39;desc&#39;))); // 5,4,3,2,1
var_dump($redis->sort(&#39;s&#39;, array(&#39;sort&#39; => &#39;desc&#39;, &#39;store&#39; => &#39;out&#39;))); // (int)5
Nach dem Login kopieren

string命令

getSet

返回原来key中的值,并将value写入key

$redis->set(&#39;x&#39;, &#39;42&#39;);
$exValue = $redis->getSet(&#39;x&#39;, &#39;lol&#39;); // return &#39;42&#39;, replaces x by &#39;lol&#39;
$newValue = $redis->get(&#39;x&#39;)&#39; // return &#39;lol&#39;
Nach dem Login kopieren

append

string,名称为key的string的值在后面加上value

$redis->set(&#39;key&#39;, &#39;value1&#39;);
$redis->append(&#39;key&#39;, &#39;value2&#39;);
$redis->get(&#39;key&#39;);
Nach dem Login kopieren

getRange (方法不存在)

返回名称为key的string中start至end之间的字符

$redis->set(&#39;key&#39;, &#39;string value&#39;);
$redis->getRange(&#39;key&#39;, 0, 5);
$redis->getRange(&#39;key&#39;, -5, -1);
Nach dem Login kopieren

setRange (方法不存在)

改变key的string中start至end之间的字符为value

$redis->set(&#39;key&#39;, &#39;Hello world&#39;);
$redis->setRange(&#39;key&#39;, 6, "redis");
$redis->get(&#39;key&#39;);
Nach dem Login kopieren

strlen

得到key的string的长度

$redis->strlen(&#39;key&#39;);
Nach dem Login kopieren

getBit/setBit

返回2进制信息

zset(sorted set)操作相关

zAdd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。

$redis->zAdd(&#39;key&#39;, 1, &#39;val1&#39;);
$redis->zAdd(&#39;key&#39;, 0, &#39;val0&#39;);
$redis->zAdd(&#39;key&#39;, 5, &#39;val5&#39;);
$redis->zRange(&#39;key&#39;, 0, -1); // array(val0, val1, val5)
Nach dem Login kopieren

zRange(key, start, end,withscores):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素

$redis->zAdd(&#39;key1&#39;, 0, &#39;val0&#39;);
$redis->zAdd(&#39;key1&#39;, 2, &#39;val2&#39;);
$redis->zAdd(&#39;key1&#39;, 10, &#39;val10&#39;);
$redis->zRange(&#39;key1&#39;, 0, -1); // with scores $redis->zRange(&#39;key1&#39;, 0, -1, true);
Nach dem Login kopieren

zDelete, zRem

zRem(key, member) :删除名称为key的zset中的元素member

$redis->zAdd(&#39;key&#39;, 0, &#39;val0&#39;);
$redis->zAdd(&#39;key&#39;, 2, &#39;val2&#39;);
$redis->zAdd(&#39;key&#39;, 10, &#39;val10&#39;);
$redis->zDelete(&#39;key&#39;, &#39;val2&#39;);
$redis->zRange(&#39;key&#39;, 0, -1);
Nach dem Login kopieren

zRevRange(key, start, end,withscores):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素.withscores: 是否输出socre的值,默认false,不输出

$redis->zAdd(&#39;key&#39;, 0, &#39;val0&#39;);
$redis->zAdd(&#39;key&#39;, 2, &#39;val2&#39;);
$redis->zAdd(&#39;key&#39;, 10, &#39;val10&#39;);
$redis->zRevRange(&#39;key&#39;, 0, -1); // with scores $redis->zRevRange(&#39;key&#39;, 0, -1, true);
zRangeByScore, zRevRangeByScore
$redis->zRangeByScore(key, star, end, array(withscores, limit ));
Nach dem Login kopieren

返回名称为key的zset中score >= star且score <= end的所有元素

zCount

$redis->zCount(key, star, end);
Nach dem Login kopieren

返回名称为key的zset中score >= star且score <= end的所有元素的个数

zRemRangeByScore, zDeleteRangeByScore
$redis->zRemRangeByScore(&#39;key&#39;, star, end);
Nach dem Login kopieren

删除名称为key的zset中score >= star且score <= end的所有元素,返回删除个数

zSize, zCard

返回名称为key的zset的所有元素的个数

zScore

$redis->zScore(key, val2);
Nach dem Login kopieren

返回名称为key的zset中元素val2的score

zRank, zRevRank

$redis->zRevRank(key, val);
Nach dem Login kopieren

返回名称为key的zset(元素已按score从小到大排序)中val元素的rank(即index,从0开始),若没有val元素,返回“null”。zRevRank 是从大到小排序

zIncrBy

$redis->zIncrBy(&#39;key&#39;, increment, &#39;member&#39;);
Nach dem Login kopieren

如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment

zUnion/zInter

参数

keyOutput

arrayZSetKeys

arrayWeights

aggregateFunction Either "SUM", "MIN", or "MAX": defines the behaviour to use on duplicate entries during the zUnion.

对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。

Hash操作

hSet

$redis->hSet(&#39;h&#39;, &#39;key1&#39;, &#39;hello&#39;);
Nach dem Login kopieren

向名称为h的hash中添加元素key1—>hello

hGet

$redis->hGet(&#39;h&#39;, &#39;key1&#39;);
Nach dem Login kopieren

返回名称为h的hash中key1对应的value(hello)

hLen

$redis->hLen(&#39;h&#39;);
Nach dem Login kopieren

返回名称为h的hash中元素个数

hDel

$redis->hDel(&#39;h&#39;, &#39;key1&#39;);
Nach dem Login kopieren

删除名称为h的hash中键为key1的域

hKeys

$redis->hKeys(&#39;h&#39;);
Nach dem Login kopieren

返回名称为key的hash中所有键

hVals

$redis->hVals(&#39;h&#39;)
Nach dem Login kopieren

返回名称为h的hash中所有键对应的value

hGetAll

$redis->hGetAll(&#39;h&#39;);
Nach dem Login kopieren

返回名称为h的hash中所有的键(field)及其对应的value

hExists

$redis->hExists(&#39;h&#39;, &#39;a&#39;);
Nach dem Login kopieren

名称为h的hash中是否存在键名字为a的域

hIncrBy

$redis->hIncrBy(&#39;h&#39;, &#39;x&#39;, 2);
Nach dem Login kopieren

将名称为h的hash中x的value增加2

hMset

$redis->hMset(&#39;user:1&#39;, array(&#39;name&#39; => &#39;Joe&#39;, &#39;salary&#39; => 2000));
Nach dem Login kopieren

向名称为key的hash中批量添加元素

hMGet

$redis->hmGet(&#39;h&#39;, array(&#39;field1&#39;, &#39;field2&#39;));
Nach dem Login kopieren

返回名称为h的hash中field1,field2对应的value

redis 操作相关

flushDB

清空当前数据库

flushAll

清空所有数据库

randomKey

随机返回key空间的一个key

$key = $redis->randomKey();
Nach dem Login kopieren

select

选择一个数据库

move

转移一个key到另外一个数据库

$redis->select(0); // switch to DB 0
$redis->set(&#39;x&#39;, &#39;42&#39;); // write 42 to x
$redis->move(&#39;x&#39;, 1); // move to DB 1
$redis->select(1); // switch to DB 1
$redis->get(&#39;x&#39;); // will return 42
Nach dem Login kopieren

rename, renameKey

给key重命名

$redis->set(&#39;x&#39;, &#39;42&#39;);
$redis->rename(&#39;x&#39;, &#39;y&#39;);
$redis->get(&#39;y&#39;); // → 42
$redis->get(&#39;x&#39;); // → `FALSE`
Nach dem Login kopieren

renameNx

与remane类似,但是,如果重新命名的名字已经存在,不会替换成功

setTimeout, expire

设定一个key的活动时间(s)

$redis->setTimeout(&#39;x&#39;, 3);
Nach dem Login kopieren

expireAt

key存活到一个unix时间戳时间

$redis->expireAt(&#39;x&#39;, time() + 3);
Nach dem Login kopieren

keys, getKeys

返回满足给定pattern的所有key

$keyWithUserPrefix = $redis->keys(&#39;user*&#39;);
Nach dem Login kopieren

dbSize

查看现在数据库有多少key

$count = $redis->dbSize();
Nach dem Login kopieren

auth

密码认证

$redis->auth(&#39;foobared&#39;);
Nach dem Login kopieren

bgrewriteaof

使用aof来进行数据库持久化

$redis->bgrewriteaof();
Nach dem Login kopieren

slaveof

选择从服务器

$redis->slaveof(&#39;10.0.1.7&#39;, 6379);
Nach dem Login kopieren

save

将数据同步保存到磁盘

bgsave

将数据异步保存到磁盘

lastSave

返回上次成功将数据保存到磁盘的Unix时戳

info

返回redis的版本信息等详情

type

返回key的类型值

string: Redis::REDIS_STRING
set: Redis::REDIS_SET
list: Redis::REDIS_LIST
zset: Redis::REDIS_ZSET
hash: Redis::REDIS_HASH
other: Redis::REDIS_NOT_FOUND
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!