ホームページ  >  記事  >  バックエンド開発  >  PHP で Redis を操作する基本的な方法

PHP で Redis を操作する基本的な方法

藏色散人
藏色散人転載
2019-07-15 15:11:549573ブラウズ

redisの基本操作方法

1 redis接続:

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

2 redis操作 Strng(文字列) ):

// 设置一个字符串的值
$redis->set('cat', 111);
//获取一个字符串的值
echo $redis->get('cat'); // 111
// 重复set
$redis->set('cat', 222);
echo $redis->get('cat'); // 222

3 redis 操作 リスト (リスト):

  //存储数据到列表中
$redis->lpush('list', 'html');
$redis->lpush('list', 'css');
$redis->lpush('list', 'php');
//获取列表中所有的值
$list = $redis->lrange('list', 0, -1);
print_r($list);echo &#39;<br>&#39;; 
// Array ( [0] => php [1] => css [2] => html )
//从右侧加入一个
$redis->rpush(&#39;list&#39;, &#39;mysql&#39;);
$list = $redis->lrange(&#39;list&#39;, 0, -1);
print_r($list);echo &#39;<br>&#39;;
// Array ( [0] => php [1] => css [2] => html [3] => mysql )
//从左侧弹出一个
$redis->lpop(&#39;list&#39;);
$list = $redis->lrange(&#39;list&#39;, 0, -1);
print_r($list);echo &#39;<br>&#39;;
// Array ( [0] => css [1] => html [2] => mysql )
//从右侧弹出一个
$redis->rpop(&#39;list&#39;);
$list = $redis->lrange(&#39;list&#39;, 0, -1);
print_r($list);echo &#39;<br>&#39;;
// Array ( [0] => css [1] => html )

4 redis 操作 ハッシュ (辞書):

<?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;;   // 1
echo $redis->hset(&#39;hash&#39;, &#39;cat&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;   // 0
echo $redis->hset(&#39;hash&#39;, &#39;cat&#39;, &#39;cat1&#39;);echo &#39;<br>&#39;;   // 0
echo $redis->hset(&#39;hash&#39;, &#39;dog&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;   // 1
echo $redis->hset(&#39;hash&#39;, &#39;bird&#39;, &#39;bird&#39;);echo &#39;<br>&#39;;   // 1
echo $redis->hset(&#39;hash&#39;, &#39;monkey&#39;, &#39;monkey&#39;);echo &#39;<br>&#39;;   // 1
//获取hash中某个key的值
echo $redis->hget(&#39;hash&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;  // cat1
//获取hash中所有的keys
$arr = $redis->hkeys(&#39;hash&#39;);
print_r($arr);echo &#39;<br>&#39;;
// Array ( [0] => cat [1] => dog [2] => bird [3] => monkey )
//获取hash中所有的值 顺序是随机的
$arr = $redis->hvals(&#39;hash&#39;);
print_r($arr);echo &#39;<br>&#39;;
 // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey )
//获取一个hash中所有的key和value 顺序是随机的
$arr = $redis->hgetall(&#39;hash&#39;);
print_r($arr);echo &#39;<br>&#39;;
 // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey )
//获取hash中key的数量
echo $redis->hlen(&#39;hash&#39;);echo &#39;<br>&#39;;
 // 4
//删除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
// int(0)

5 redis 操作 セット (セット):

<?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;;         // 1
echo $redis->sadd(&#39;set&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;         // 0
echo $redis->sadd(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;        // 1
echo $redis->sadd(&#39;set&#39;, &#39;rabbit&#39;);echo &#39;<br>&#39;;     // 1
echo $redis->sadd(&#39;set&#39;, &#39;bear&#39;);echo &#39;<br>&#39;;      // 1
echo $redis->sadd(&#39;set&#39;, &#39;horse&#39;);echo &#39;<br>&#39;;    // 1
// 查看集合中所有的元素
$set = $redis->smembers(&#39;set&#39;);
print_r($set);echo &#39;<br>&#39;;
// Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )
//删除集合中的value
echo $redis->srem(&#39;set&#39;, &#39;cat&#39;);echo &#39;<br>&#39;;    // 1
var_dump($redis->srem(&#39;set&#39;, &#39;bird&#39;));echo &#39;<br>&#39;;     // int(0)
$set = $redis->smembers(&#39;set&#39;);
print_r($set);echo &#39;<br>&#39;;
// Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )
//判断元素是否是set的成员
var_dump($redis->sismember(&#39;set&#39;, &#39;dog&#39;));echo &#39;<br>&#39;;     // bool(true)
var_dump($redis->sismember(&#39;set&#39;, &#39;bird&#39;));echo &#39;<br>&#39;;    // bool(false)
//查看集合中成员的数量
echo $redis->scard(&#39;set&#39;);echo &#39;<br>&#39;;    // 4
//移除并返回集合中的一个随机元素(返回被移除的元素)
echo $redis->spop(&#39;set&#39;);echo &#39;<br>&#39;;  // bear
print_r($redis->smembers(&#39;set&#39;));echo &#39;<br>&#39;;   
 // Array ( [0] => dog [1] => rabbit [2] => horse )
<?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;;
 // Array ( [0] => cat [1] => dog [2] => bird [3] => horse )
print_r($redis->smembers(&#39;set2&#39;));echo &#39;<br>&#39;;
// Array ( [0] => bird [1] => dog [2] => fish )
//返回集合的交集
print_r($redis->sinter(&#39;set&#39;, &#39;set2&#39;));echo &#39;<br>&#39;;
// Array ( [0] => dog [1] => bird )
//执行交集操作 并结果放到一个集合中
$redis->sinterstore(&#39;output&#39;, &#39;set&#39;, &#39;set2&#39;);
print_r($redis->smembers(&#39;output&#39;));echo &#39;<br>&#39;;
// Array ( [0] => dog [1] => bird )
//返回集合的并集
print_r($redis->sunion(&#39;set&#39;, &#39;set2&#39;));echo &#39;<br>&#39;;
// Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )
//执行并集操作 并结果放到一个集合中
$redis->sunionstore(&#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 [4] => fish )
//返回集合的差集
print_r($redis->sdiff(&#39;set&#39;, &#39;set2&#39;));echo &#39;<br>&#39;;
// Array ( [0] => horse [1] => cat )
//执行差集操作 并结果放到一个集合中
$redis->sdiffstore(&#39;output&#39;, &#39;set&#39;, &#39;set2&#39;);
print_r($redis->smembers(&#39;output&#39;));echo &#39;<br>&#39;;
// Array ( [0] => horse [1] => cat )

6 redis 操作 ソートされたセット (順序付きセット):

  <?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;;      // 1
echo $redis->zadd(&#39;set&#39;, 2, &#39;dog&#39;);echo &#39;<br>&#39;;    // 1
echo $redis->zadd(&#39;set&#39;, 3, &#39;fish&#39;);echo &#39;<br>&#39;;    // 1
echo $redis->zadd(&#39;set&#39;, 4, &#39;dog&#39;);echo &#39;<br>&#39;;    // 0
echo $redis->zadd(&#39;set&#39;, 4, &#39;bird&#39;);echo &#39;<br>&#39;;    // 1
//返回集合中的所有元素
print_r($redis->zrange(&#39;set&#39;, 0, -1));echo &#39;<br>&#39;;
// Array ( [0] => cat [1] => fish [2] => bird [3] => dog )
print_r($redis->zrange(&#39;set&#39;, 0, -1, true));echo &#39;<br>&#39;;
// Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )
//返回元素的score值
echo $redis->zscore(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
// 4
//返回存储的个数
echo $redis->zcard(&#39;set&#39;);echo &#39;<br>&#39;;
// 4
//删除指定成员
$redis->zrem(&#39;set&#39;, &#39;cat&#39;);
print_r($redis->zrange(&#39;set&#39;, 0, -1));echo &#39;<br>&#39;;
// Array ( [0] => fish [1] => bird [2] => dog )
//返回集合中介于min和max之间的值的个数
print_r($redis->zcount(&#39;set&#39;, 3, 5));echo &#39;<br>&#39;;
// 3
//返回有序集合中score介于min和max之间的值
print_r($redis->zrangebyscore(&#39;set&#39;, 3, 5));echo &#39;<br>&#39;;
 // Array ( [0] => fish [1] => bird [2] => dog )
print_r($redis->zrangebyscore(&#39;set&#39;, 3, 5, [&#39;withscores&#39;=>true]));echo &#39;<br>&#39;;
 // Array ( [fish] => 3 [bird] => 4 [dog] => 4 )
//返回集合中指定区间内所有的值 倒叙
print_r($redis->zrevrange(&#39;set&#39;, 1, 2));echo &#39;<br>&#39;;
 // Array ( [0] => bird [1] => fish )
print_r($redis->zrevrange(&#39;set&#39;, 1, 2, true));echo &#39;<br>&#39;;
// Array ( [bird] => 4 [fish] => 3 )
//有序集合中指定值的socre增加
echo $redis->zscore(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
 // 4
$redis->zincrby(&#39;set&#39;, 2, &#39;dog&#39;);
echo $redis->zscore(&#39;set&#39;, &#39;dog&#39;);echo &#39;<br>&#39;;
// 6
//移除score值介于min和max之间的元素
print_r($redis->zrange(&#39;set&#39;, 0, -1, true));echo &#39;<br>&#39;;
// Array ( [fish] => 3 [bird] => 4 [dog] => 6 )
print_r($redis->zremrangebyscore(&#39;set&#39;, 3, 4));echo &#39;<br>&#39;;
 // 2
print_r($redis->zrange(&#39;set&#39;, 0, -1, true));echo &#39;<br>&#39;;
 // Array ( [dog] => 6 )
//结果

関連推奨事項: "PHP チュートリアル " "Redis チュートリアル "

以上がPHP で Redis を操作する基本的な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。