Gängige Methoden zum Betrieb der Redis-Datenbank mit PHP (Zusammenfassung)

藏色散人
Freigeben: 2023-04-08 10:28:02
nach vorne
2657 Leute haben es durchsucht

Gängige Methoden zum Betrieb der Redis-Datenbank mit PHP (Zusammenfassung)

Redis ist eine Open-Source-Schlüsselwertdatenbank im Protokolltyp, die in der ANSI-C-Sprache geschrieben ist, Netzwerke unterstützt, speicherbasiert und persistent sein kann und APIs in mehreren Sprachen bereitstellt.

Die von Redis unterstützten Datentypen sind Stirng(字符串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合);

erfordert PHP Um Redis verwenden zu können, müssen Sie zunächst die Redis-Erweiterung installieren.

1. Redis installieren

Git-Download-Adresse

https://github.com/MSOpenTech/redis/releases

2. Testen Sie Redis

Windows ausführen (Tastenkombination: Windows-Taste + R-Taste), geben Sie den Befehl [cmd] ein, um das DOC-Betriebssystemfenster aufzurufen 🎜>

Geben Sie das Redis-Installationsverzeichnis ein und verwenden Sie den Befehl

2.1 Starten Sie den Redis-Daemon (geben Sie das Redis-Installationsverzeichnis ein)

redis-server.exe redis-windows-conf
Nach dem Login kopieren

2.2 Geben Sie den Redis-Client ein (Geben Sie das Redis-Installationsverzeichnis ein)

redis-cli.exe
Nach dem Login kopieren

3. Installieren Sie die PHP-Redis-Erweiterung

Download-Adresse

https ://pecl.php.net/package/redis

Wählen Sie das entsprechende Redis-Erweiterungskomprimierungspaket basierend auf den phpinfo()-Informationen aus

4. Platzieren Sie die beiden Dateien php_redis.dll und php_redis.pdb des Redis-Erweiterungspakets

5. Ändern Sie die Datei php.ini

extension=php_redis.dll
Nach dem Login kopieren

6. Überprüfen Sie, ob die Redis-Erweiterung aktiviert ist

phpinfo()-Informationen anzeigen, nach Redis suchen

7.php Verbinden und testen Sie die Redis-Datenbank (denken Sie daran, den Redis-Dienst zu aktivieren)

Neue test.php

<?php
 $redis = new Redis();
 $redis->connect(&#39;127.0.0.1&#39;,6379); 
 $redis->set(&#39;name&#39;,&#39;klc&#39;);
 echo $redis->get(&#39;name&#39;);
?>
Nach dem Login kopieren

Operationen an Datentypen

Strng (string):

<?php

// 设置一个字符串的值
$redis->set(&#39;cat&#39;, 111);
//获取一个字符串的值
echo $redis->get(&#39;cat&#39;); // 111
// 重复set
$redis->set(&#39;cat&#39;, 222);
echo $redis->get(&#39;cat&#39;); // 222
Nach dem Login kopieren

List(list):

//列表
//存储数据到列表中
$redis->lpush(&#39;list&#39;, &#39;html&#39;);
$redis->lpush(&#39;list&#39;, &#39;css&#39;);
$redis->lpush(&#39;list&#39;, &#39;php&#39;);
//获取列表中所有的值
$list = $redis->lrange(&#39;list&#39;, 0, -1);
print_r($list);echo &#39;<br>&#39;; 
//从右侧加入一个
$redis->rpush(&#39;list&#39;, &#39;mysql&#39;);
$list = $redis->lrange(&#39;list&#39;, 0, -1);
print_r($list);echo &#39;<br>&#39;;
//从左侧弹出一个
$redis->lpop(&#39;list&#39;);
$list = $redis->lrange(&#39;list&#39;, 0, -1);
print_r($list);echo &#39;<br>&#39;;
//从右侧弹出一个
$redis->rpop(&#39;list&#39;);
$list = $redis->lrange(&#39;list&#39;, 0, -1);
print_r($list);echo &#39;<br>&#39;;
// 结果
// Array ( [0] => php [1] => css [2] => html )
// Array ( [0] => php [1] => css [2] => html [3] => mysql )
// Array ( [0] => css [1] => html [2] => mysql )
// Array ( [0] => css [1] => html )
Nach dem Login kopieren
<?php
  //实例化redis
  $redis = new Redis();
  //连接
  $redis->connect(&#39;127.0.0.1&#39;, 6379);
  //列表
  //存储数据到列表中
  $redis->lpush(&#39;list&#39;, &#39;html&#39;);
  $redis->lpush(&#39;list&#39;, &#39;css&#39;);
  $redis->lpush(&#39;list&#39;, &#39;php&#39;);
  $redis->lpush(&#39;list&#39;, &#39;mysql&#39;);
  $redis->lpush(&#39;list&#39;, &#39;javascript&#39;);
  $redis->lpush(&#39;list&#39;, &#39;ajax&#39;);
  //获取列表中所有的值
  $list = $redis->lrange(&#39;list&#39;, 0, -1);
  print_r($list);echo &#39;<br>&#39;; 
  //获取列表的长度
  $length = $redis->lsize(&#39;list&#39;);
  echo $length;echo &#39;<br>&#39;;
  //返回列表key中index位置的值
  echo $redis->lget(&#39;list&#39;, 2);echo &#39;<br>&#39;;
  echo $redis->lindex(&#39;list&#39;, 2);echo &#39;<br>&#39;;
  //设置列表中index位置的值
  echo $redis->lset(&#39;list&#39;, 2, &#39;linux&#39;);echo &#39;<br>&#39;;
  $list = $redis->lrange(&#39;list&#39;, 0, -1);
  print_r($list);echo &#39;<br>&#39;;
  //返回key中从start到end位置间的元素
  $list = $redis->lrange(&#39;list&#39;, 0, 2);
  print_r($list);echo &#39;<br>&#39;;
  $list = $redis->lgetrange(&#39;list&#39;, 0, 2);
  print_r($list);echo &#39;<br>&#39;;
  //截取链表中start到end的元素
//截取列表后列表发生变化,列表保留截取的元素,其余的删除
  $list = $redis->ltrim(&#39;list&#39;, 0, 1);
  print_r($list);echo &#39;<br>&#39;;
  $list = $redis->lrange(&#39;list&#39;, 0, -1);
  print_r($list);echo &#39;<br>&#39;;
  // 结果
  // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css [5] => html )
  // 6
  // mysql
  // mysql
  // 1
  // Array ( [0] => ajax [1] => javascript [2] => linux [3] => php [4] => css [5] => html )
  // Array ( [0] => ajax [1] => javascript [2] => linux )
  // Array ( [0] => ajax [1] => javascript [2] => linux )
  // 1
  // Array ( [0] => ajax [1] => javascript )
Nach dem Login kopieren
<?php
  //实例化redis
  $redis = new Redis();
  //连接
  $redis->connect(&#39;127.0.0.1&#39;, 6379);
  //列表
  //存储数据到列表中
  $redis->lpush(&#39;list&#39;, &#39;html&#39;);
  $redis->lpush(&#39;list&#39;, &#39;html&#39;);
  $redis->lpush(&#39;list&#39;, &#39;html&#39;);
  $redis->lpush(&#39;list&#39;, &#39;css&#39;);
  $redis->lpush(&#39;list&#39;, &#39;php&#39;);
  $redis->lpush(&#39;list&#39;, &#39;mysql&#39;);
  $redis->lpush(&#39;list&#39;, &#39;javascript&#39;);
  $redis->lpush(&#39;list&#39;, &#39;html&#39;);
  $redis->lpush(&#39;list&#39;, &#39;html&#39;);
  $redis->lpush(&#39;list&#39;, &#39;html&#39;);
  $redis->lpush(&#39;list&#39;, &#39;ajax&#39;);
  //获取列表中所有的值
  $list = $redis->lrange(&#39;list&#39;, 0, -1);
  print_r($list);echo &#39;<br>&#39;; 
  //删除列表中count个值为value的元素
  //从左向右删
  $redis->lrem(&#39;list&#39;, &#39;html&#39;, 2);
  $list = $redis->lrange(&#39;list&#39;, 0, -1);
  print_r($list);echo &#39;<br>&#39;; 
  //从右向左删
  $redis->lrem(&#39;list&#39;, &#39;html&#39;, -2);
  $list = $redis->lrange(&#39;list&#39;, 0, -1);
  print_r($list);echo &#39;<br>&#39;; 
  //删除所有
  $redis->lrem(&#39;list&#39;, &#39;html&#39;, 0);
  $list = $redis->lrange(&#39;list&#39;, 0, -1);
  print_r($list);echo &#39;<br>&#39;;
  // 结果
  // Array ( [0] => ajax [1] => html [2] => html [3] => html [4] => javascript [5] => mysql [6] => php [7] => css [8] => html [9] => html [10] => html )
  // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html [7] => html [8] => html )
  // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html )
  // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css )
Nach dem Login kopieren

Hash(Wörterbuch):

<?php
  //实例化redis
  $redis = new Redis();
  //连接
  $redis->connect(&#39;127.0.0.1&#39;, 6379);
  //字典
  //给hash表中某个key设置value
  //如果没有则设置成功,返回1,如果存在会替换原有的值,返回0,失败返回0
  echo $redis->hset(&#39;hash&#39;, &#39;cat&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;
  echo $redis->hset(&#39;hash&#39;, &#39;cat&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;
  echo $redis->hset(&#39;hash&#39;, &#39;cat&#39;, &#39;cat1&#39;);echo &#39;<br>&#39;;
  echo $redis->hset(&#39;hash&#39;, &#39;dog&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
  echo $redis->hset(&#39;hash&#39;, &#39;bird&#39;, &#39;bird&#39;);echo &#39;<br>&#39;;
  echo $redis->hset(&#39;hash&#39;, &#39;monkey&#39;, &#39;monkey&#39;);echo &#39;<br>&#39;;
  //获取hash中某个key的值
  echo $redis->hget(&#39;hash&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;
  //获取hash中所有的keys
  $arr = $redis->hkeys(&#39;hash&#39;);
  print_r($arr);echo &#39;<br>&#39;;
  //获取hash中所有的值 顺序是随机的
  $arr = $redis->hvals(&#39;hash&#39;);
  print_r($arr);echo &#39;<br>&#39;;
  //获取一个hash中所有的key和value 顺序是随机的
  $arr = $redis->hgetall(&#39;hash&#39;);
  print_r($arr);echo &#39;<br>&#39;;
  //获取hash中key的数量
  echo $redis->hlen(&#39;hash&#39;);echo &#39;<br>&#39;;
  //删除hash中一个key 如果表不存在或key不存在则返回false
  echo $redis->hdel(&#39;hash&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
  var_dump($redis->hdel(&#39;hash&#39;, &#39;rabbit&#39;));echo &#39;<br>&#39;;
  // 结果
  // 1
  // 0
  // 0
  // 1
  // 1
  // 1
  // cat1
  // Array ( [0] => cat [1] => dog [2] => bird [3] => monkey )
  // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey )
  // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey )
  // 4
  // 1
  // int(0)
 

<?php
  //实例化redis
  $redis = new Redis();
  //连接
  $redis->connect(&#39;127.0.0.1&#39;, 6379);
  //字典
  //批量设置多个key的值
  $arr = [1=>1, 2=>2, 3=>3, 4=>4, 5=>5];
  $redis->hmset(&#39;hash&#39;, $arr);
  print_r($redis->hgetall(&#39;hash&#39;));echo &#39;<br>&#39;;
  // 批量获得额多个key的值
  $arr = [1, 2, 3, 5];
  $hash = $redis->hmget(&#39;hash&#39;, $arr);
  print_r($hash);echo &#39;<br>&#39;;
  //检测hash中某个key知否存在
  echo $redis->hexists(&#39;hash&#39;, &#39;1&#39;);echo &#39;<br>&#39;;
  var_dump($redis->hexists(&#39;hash&#39;, &#39;cat&#39;));echo &#39;<br>&#39;;
  print_r($redis->hgetall(&#39;hash&#39;));echo &#39;<br>&#39;;
  //给hash表中key增加一个整数值
  $redis->hincrby(&#39;hash&#39;, &#39;1&#39;, 1);
  print_r($redis->hgetall(&#39;hash&#39;));echo &#39;<br>&#39;;
  //给hash中的某个key增加一个浮点值
  $redis->hincrbyfloat(&#39;hash&#39;, 2, 1.3);
  print_r($redis->hgetall(&#39;hash&#39;));echo &#39;<br>&#39;;
  //结果
  // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
  // Array ( [1] => 1 [2] => 2 [3] => 3 [5] => 5 )
  // 1
  // bool(false)
  // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
  // Array ( [1] => 2 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
  // Array ( [1] => 2 [2] => 3.3 [3] => 3 [4] => 4 [5] => 5 )
Nach dem Login kopieren

Set(set):

<?php
  //实例化redis
  $redis = new Redis();
  //连接
  $redis->connect(&#39;127.0.0.1&#39;, 6379);
  //集合
  // 添加一个元素
  echo $redis->sadd(&#39;set&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;
  echo $redis->sadd(&#39;set&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;
  echo $redis->sadd(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
  echo $redis->sadd(&#39;set&#39;, &#39;rabbit&#39;);echo &#39;<br>&#39;;
  echo $redis->sadd(&#39;set&#39;, &#39;bear&#39;);echo &#39;<br>&#39;;
  echo $redis->sadd(&#39;set&#39;, &#39;horse&#39;);echo &#39;<br>&#39;;
  // 查看集合中所有的元素
  $set = $redis->smembers(&#39;set&#39;);
  print_r($set);echo &#39;<br>&#39;;
  //删除集合中的value
  echo $redis->srem(&#39;set&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;
  var_dump($redis->srem(&#39;set&#39;, &#39;bird&#39;));echo &#39;<br>&#39;;
  $set = $redis->smembers(&#39;set&#39;);
  print_r($set);echo &#39;<br>&#39;;
  //判断元素是否是set的成员
  var_dump($redis->sismember(&#39;set&#39;, &#39;dog&#39;));echo &#39;<br>&#39;;
  var_dump($redis->sismember(&#39;set&#39;, &#39;bird&#39;));echo &#39;<br>&#39;;
  //查看集合中成员的数量
  echo $redis->scard(&#39;set&#39;);echo &#39;<br>&#39;;
  //移除并返回集合中的一个随机元素(返回被移除的元素)
  echo $redis->spop(&#39;set&#39;);echo &#39;<br>&#39;;
  print_r($redis->smembers(&#39;set&#39;));echo &#39;<br>&#39;;
  // 结果
  // 1
  // 0
  // 1
  // 1
  // 1
  // 1
  // Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )
  // 1
  // int(0)
  // Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )
  // bool(true)
  // bool(false)
  // 4
  // bear
  // Array ( [0] => dog [1] => rabbit [2] => horse )
Nach dem Login kopieren

<?php
  //实例化redis
  $redis = new Redis();
  //连接
  $redis->connect(&#39;127.0.0.1&#39;, 6379);
  //集合
  $redis->sadd(&#39;set&#39;, &#39;horse&#39;);
  $redis->sadd(&#39;set&#39;, &#39;cat&#39;);
  $redis->sadd(&#39;set&#39;, &#39;dog&#39;);
  $redis->sadd(&#39;set&#39;, &#39;bird&#39;);
  $redis->sadd(&#39;set2&#39;, &#39;fish&#39;);
  $redis->sadd(&#39;set2&#39;, &#39;dog&#39;);
  $redis->sadd(&#39;set2&#39;, &#39;bird&#39;);
  print_r($redis->smembers(&#39;set&#39;));echo &#39;<br>&#39;;
  print_r($redis->smembers(&#39;set2&#39;));echo &#39;<br>&#39;;
  //返回集合的交集
  print_r($redis->sinter(&#39;set&#39;, &#39;set2&#39;));echo &#39;<br>&#39;;
  //执行交集操作 并结果放到一个集合中
  $redis->sinterstore(&#39;output&#39;, &#39;set&#39;, &#39;set2&#39;);
  print_r($redis->smembers(&#39;output&#39;));echo &#39;<br>&#39;;
  //返回集合的并集
  print_r($redis->sunion(&#39;set&#39;, &#39;set2&#39;));echo &#39;<br>&#39;;
  //执行并集操作 并结果放到一个集合中
  $redis->sunionstore(&#39;output&#39;, &#39;set&#39;, &#39;set2&#39;);
  print_r($redis->smembers(&#39;output&#39;));echo &#39;<br>&#39;;
  //返回集合的差集
  print_r($redis->sdiff(&#39;set&#39;, &#39;set2&#39;));echo &#39;<br>&#39;;
  //执行差集操作 并结果放到一个集合中
  $redis->sdiffstore(&#39;output&#39;, &#39;set&#39;, &#39;set2&#39;);
  print_r($redis->smembers(&#39;output&#39;));echo &#39;<br>&#39;;
  // 结果
  // Array ( [0] => cat [1] => dog [2] => bird [3] => horse )
  // Array ( [0] => bird [1] => dog [2] => fish )
  // Array ( [0] => bird [1] => dog )
  // Array ( [0] => dog [1] => bird )
  // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )
  // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )
  // Array ( [0] => horse [1] => cat )
  // Array ( [0] => horse [1] => cat )
Nach dem Login kopieren

Sortierter Satz:

<?php
  //实例化redis
  $redis = new Redis();
  //连接
  $redis->connect(&#39;127.0.0.1&#39;, 6379);
  //有序集合
  //添加元素
  echo $redis->zadd(&#39;set&#39;, 1, &#39;cat&#39;);echo &#39;<br>&#39;;
  echo $redis->zadd(&#39;set&#39;, 2, &#39;dog&#39;);echo &#39;<br>&#39;;
  echo $redis->zadd(&#39;set&#39;, 3, &#39;fish&#39;);echo &#39;<br>&#39;;
  echo $redis->zadd(&#39;set&#39;, 4, &#39;dog&#39;);echo &#39;<br>&#39;;
  echo $redis->zadd(&#39;set&#39;, 4, &#39;bird&#39;);echo &#39;<br>&#39;;
  //返回集合中的所有元素
  print_r($redis->zrange(&#39;set&#39;, 0, -1));echo &#39;<br>&#39;;
  print_r($redis->zrange(&#39;set&#39;, 0, -1, true));echo &#39;<br>&#39;;
  //返回元素的score值
  echo $redis->zscore(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
  //返回存储的个数
  echo $redis->zcard(&#39;set&#39;);echo &#39;<br>&#39;;
  //删除指定成员
  $redis->zrem(&#39;set&#39;, &#39;cat&#39;);
  print_r($redis->zrange(&#39;set&#39;, 0, -1));echo &#39;<br>&#39;;
  //返回集合中介于min和max之间的值的个数
  print_r($redis->zcount(&#39;set&#39;, 3, 5));echo &#39;<br>&#39;;
  //返回有序集合中score介于min和max之间的值
  print_r($redis->zrangebyscore(&#39;set&#39;, 3, 5));echo &#39;<br>&#39;;
  print_r($redis->zrangebyscore(&#39;set&#39;, 3, 5, [&#39;withscores&#39;=>true]));echo &#39;<br>&#39;;
  //返回集合中指定区间内所有的值
  print_r($redis->zrevrange(&#39;set&#39;, 1, 2));echo &#39;<br>&#39;;
  print_r($redis->zrevrange(&#39;set&#39;, 1, 2, true));echo &#39;<br>&#39;;
  //有序集合中指定值的socre增加
  echo $redis->zscore(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
  $redis->zincrby(&#39;set&#39;, 2, &#39;dog&#39;);
  echo $redis->zscore(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
  //移除score值介于min和max之间的元素
  print_r($redis->zrange(&#39;set&#39;, 0, -1, true));echo &#39;<br>&#39;;
  print_r($redis->zremrangebyscore(&#39;set&#39;, 3, 4));echo &#39;<br>&#39;;
  print_r($redis->zrange(&#39;set&#39;, 0, -1, true));echo &#39;<br>&#39;;
  //结果
  // 1
  // 0
  // 0
  // 0
  // 0
  // Array ( [0] => cat [1] => fish [2] => bird [3] => dog )
  // Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )
  // 4
  // 4
  // Array ( [0] => fish [1] => bird [2] => dog )
  // 3
  // Array ( [0] => fish [1] => bird [2] => dog )
  // Array ( [fish] => 3 [bird] => 4 [dog] => 4 )
  // Array ( [0] => bird [1] => fish )
  // Array ( [bird] => 4 [fish] => 3 )
  // 4
  // 6
  // Array ( [fish] => 3 [bird] => 4 [dog] => 6 )
  // 2
  // Array ( [dog] => 6 )
Nach dem Login kopieren

Weitere verwandte PHP-Kenntnisse finden Sie im

PHP-Tutorial !

Das obige ist der detaillierte Inhalt vonGängige Methoden zum Betrieb der Redis-Datenbank mit PHP (Zusammenfassung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
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!