Maison > développement back-end > tutoriel php > Comment faire fonctionner Redis en utilisant PHP ? Introduction aux méthodes de fonctionnement de base

Comment faire fonctionner Redis en utilisant PHP ? Introduction aux méthodes de fonctionnement de base

青灯夜游
Libérer: 2023-04-10 11:14:01
avant
5145 Les gens l'ont consulté

Comment faire fonctionner Redis avec PHP ? L'article suivant partagera avec vous quelques méthodes de base pour utiliser Redis en PHP, telles que la connexion Redis, l'utilisation de Strng, List, Hash, Set, etc. J'espère qu'il vous sera utile.

Comment faire fonctionner Redis en utilisant PHP ? Introduction aux méthodes de fonctionnement de base

【Recommandations associées : Tutoriel vidéo Redis, Tutoriel vidéo PHP

Récemment, j'ai systématiquement étudié Redis et préparé un article sur les problèmes courants rencontrés lors de l'utilisation de Redis, notamment :

redis La base ; méthode d'opération

1 connexion redis :

//实例化redis
$redis = new Redis();
//连接
 $redis->connect('127.0.0.1', 6379);
//检测是否连接成功
echo "Server is running: " . $redis->ping();
// 输出结果 Server is running: +PONG
Copier après la connexion

2 opération redis Strng (string) :

// 设置一个字符串的值
$redis->set('cat', 111);

//获取一个字符串的值
echo $redis->get('cat'); // 111

// 重复set
$redis->set('cat', 222);
echo $redis->get('cat'); // 222
Copier après la connexion

3 opération redis List (liste) :

//存储数据到列表中
$redis->lpush('list', 'html');
$redis->lpush('list', 'css');
$redis->lpush('list', 'php');

//获取列表中所有的值
$list = $redis->lrange('list', 0, -1);
print_r($list);echo '<br>'; 
// Array ( [0] => php [1] => css [2] => html )

//从右侧加入一个
$redis->rpush('list', 'mysql');
$list = $redis->lrange('list', 0, -1);
print_r($list);echo '<br>';
// Array ( [0] => php [1] => css [2] => html [3] => mysql )

//从左侧弹出一个
$redis->lpop('list');
$list = $redis->lrange('list', 0, -1);
print_r($list);echo '<br>';
// Array ( [0] => css [1] => html [2] => mysql )

//从右侧弹出一个
$redis->rpop('list');
$list = $redis->lrange('list', 0, -1);
print_r($list);echo '<br>';
// Array ( [0] => css [1] => html )
Copier après la connexion

4 opération redis Hash (Dictionnaire) :

<?php
//实例化redis
$redis = new Redis();
//连接
$redis->connect('127.0.0.1', 6379);
//字典
//给hash表中某个key设置value
//如果没有则设置成功,返回1,如果存在会替换原有的值,返回0,失败返回0
echo $redis->hset('hash', 'cat', 'cat');echo '<br>';   // 1
echo $redis->hset('hash', 'cat', 'cat');echo '<br>';   // 0
echo $redis->hset('hash', 'cat', 'cat1');echo '<br>';   // 0
echo $redis->hset('hash', 'dog', 'dog');echo '<br>';   // 1
echo $redis->hset('hash', 'bird', 'bird');echo '<br>';   // 1
echo $redis->hset('hash', 'monkey', 'monkey');echo '<br>';   // 1
//获取hash中某个key的值
echo $redis->hget('hash', 'cat');echo '<br>';  // cat1

//获取hash中所有的keys
$arr = $redis->hkeys('hash');
print_r($arr);echo '<br>';
// Array ( [0] => cat [1] => dog [2] => bird [3] => monkey )

//获取hash中所有的值 顺序是随机的
$arr = $redis->hvals('hash');
print_r($arr);echo '<br>';
 // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey )

//获取一个hash中所有的key和value 顺序是随机的
$arr = $redis->hgetall('hash');
print_r($arr);echo '<br>';
 // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey )

//获取hash中key的数量
echo $redis->hlen('hash');echo '<br>';
 // 4

//删除hash中一个key 如果表不存在或key不存在则返回false
echo $redis->hdel('hash', 'dog');echo '<br>';
var_dump($redis->hdel('hash', 'rabbit'));echo '<br>';
// 1
// int(0)
Copier après la connexion

5 opérations Redis Ensemble (ensemble) :

<?php
//实例化redis
$redis = new Redis();
//连接
$redis->connect('127.0.0.1', 6379);
//集合
// 添加一个元素
echo $redis->sadd('set', 'cat');echo '<br>';         // 1
echo $redis->sadd('set', 'cat');echo '<br>';         // 0
echo $redis->sadd('set', 'dog');echo '<br>';        // 1
echo $redis->sadd('set', 'rabbit');echo '<br>';     // 1
echo $redis->sadd('set', 'bear');echo '<br>';      // 1
echo $redis->sadd('set', 'horse');echo '<br>';    // 1

// 查看集合中所有的元素
$set = $redis->smembers('set');
print_r($set);echo '<br>';
// Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )

//删除集合中的value
echo $redis->srem('set', 'cat');echo '<br>';    // 1
var_dump($redis->srem('set', 'bird'));echo '<br>';     // int(0)

$set = $redis->smembers('set');
print_r($set);echo '<br>';
// Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )

//判断元素是否是set的成员
var_dump($redis->sismember('set', 'dog'));echo '<br>';     // bool(true)
var_dump($redis->sismember('set', 'bird'));echo '<br>';    // bool(false)

//查看集合中成员的数量
echo $redis->scard('set');echo '<br>';    // 4

//移除并返回集合中的一个随机元素(返回被移除的元素)
echo $redis->spop('set');echo '<br>';  // bear

print_r($redis->smembers('set'));echo '<br>';   
 // Array ( [0] => dog [1] => rabbit [2] => horse )

<?php
//实例化redis
$redis = new Redis();
//连接
$redis->connect('127.0.0.1', 6379);
//集合
$redis->sadd('set', 'horse');
$redis->sadd('set', 'cat');
$redis->sadd('set', 'dog');
$redis->sadd('set', 'bird');
$redis->sadd('set2', 'fish');
$redis->sadd('set2', 'dog');
$redis->sadd('set2', 'bird');

print_r($redis->smembers('set'));echo '<br>';
 // Array ( [0] => cat [1] => dog [2] => bird [3] => horse )
print_r($redis->smembers('set2'));echo '<br>';
// Array ( [0] => bird [1] => dog [2] => fish )

//返回集合的交集
print_r($redis->sinter('set', 'set2'));echo '<br>';
// Array ( [0] => dog [1] => bird )

//执行交集操作 并结果放到一个集合中
$redis->sinterstore('output', 'set', 'set2');
print_r($redis->smembers('output'));echo '<br>';
// Array ( [0] => dog [1] => bird )

//返回集合的并集
print_r($redis->sunion('set', 'set2'));echo '<br>';
// Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )

//执行并集操作 并结果放到一个集合中
$redis->sunionstore('output', 'set', 'set2');
print_r($redis->smembers('output'));echo '<br>';
 // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )

//返回集合的差集
print_r($redis->sdiff('set', 'set2'));echo '<br>';
// Array ( [0] => horse [1] => cat )

//执行差集操作 并结果放到一个集合中
$redis->sdiffstore('output', 'set', 'set2');
print_r($redis->smembers('output'));echo '<br>';
// Array ( [0] => horse [1] => cat )
Copier après la connexion

6 opérations Redis Ensemble trié (ensemble commandé) :

<?php
//实例化redis
$redis = new Redis();
//连接
$redis->connect('127.0.0.1', 6379);
//有序集合
//添加元素 分数
echo $redis->zadd('set', 1, 'cat');echo '<br>';      // 1
echo $redis->zadd('set', 2, 'dog');echo '<br>';    // 1
echo $redis->zadd('set', 3, 'fish');echo '<br>';    // 1
echo $redis->zadd('set', 4, 'dog');echo '<br>';    // 0
echo $redis->zadd('set', 4, 'bird');echo '<br>';    // 1

//返回集合中的所有元素
print_r($redis->zrange('set', 0, -1));echo '<br>';
// Array ( [0] => cat [1] => fish [2] => bird [3] => dog )

print_r($redis->zrange('set', 0, -1, true));echo '<br>';
// Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )

//返回元素的score值
echo $redis->zscore('set', 'dog');echo '<br>';
// 4

//返回存储的个数
echo $redis->zcard('set');echo '<br>';
// 4

//删除指定成员
$redis->zrem('set', 'cat');
print_r($redis->zrange('set', 0, -1));echo '<br>';
// Array ( [0] => fish [1] => bird [2] => dog )

//返回集合中介于min和max之间的值的个数
print_r($redis->zcount('set', 3, 5));echo '<br>';
// 3

//返回有序集合中score介于min和max之间的值
print_r($redis->zrangebyscore('set', 3, 5));echo '<br>';
 // Array ( [0] => fish [1] => bird [2] => dog )
print_r($redis->zrangebyscore('set', 3, 5, ['withscores'=>true]));echo '<br>';
 // Array ( [fish] => 3 [bird] => 4 [dog] => 4 )

//返回集合中指定区间内所有的值 倒叙
print_r($redis->zrevrange('set', 1, 2));echo '<br>';
 // Array ( [0] => bird [1] => fish )
print_r($redis->zrevrange('set', 1, 2, true));echo '<br>';
// Array ( [bird] => 4 [fish] => 3 )

//有序集合中指定值的socre增加
echo $redis->zscore('set', 'dog');echo '<br>';
 // 4
$redis->zincrby('set', 2, 'dog');
echo $redis->zscore('set', 'dog');echo '<br>';
// 6

//移除score值介于min和max之间的元素
print_r($redis->zrange('set', 0, -1, true));echo '<br>';
// Array ( [fish] => 3 [bird] => 4 [dog] => 6 )
print_r($redis->zremrangebyscore('set', 3, 4));echo '<br>';
 // 2
print_r($redis->zrange('set', 0, -1, true));echo '<br>';
 // Array ( [dog] => 6 )
//结果
Copier après la connexion

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:zhihu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal