Redis 幾種應用場景

2021-08-02 05:48:42 字數 3011 閱讀 8389

字串快取

<?php

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$strkey = 'test';

$strkey1 ='test1';

//set

$arrcache = [

'name'=>'mysteryh',

'***'=>'男',

'age'=>22

];$redis->set($strkey,json_encode($arrcache));

$redis->expire($strkey,300);//設定過期時間

$json_data = $redis->get($strkey);

$data = json_decode($json_data);

print_r($data->name);

//hset

$arrweb =[

'google'=>[

'google.com',

'google.com.hk']];

$redis->hset($strkey1,'google',json_encode($arrweb['google']));

$json_data = $redis->hget($strkey1,'google');

$data = json_decode($json_data);

print_r($data);

簡單訊息佇列
<?php

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$strkey = 'queue';

//進隊

$redis->rpush($strkey,json_encode(['id'=>1,'name'=>'name1']));

$redis->rpush($strkey,json_encode(['id'=>2,'name'=>'name2']));

$redis->rpush($strkey,json_encode(['id'=>3,'name'=>'name3']));

$redis->rpush($strkey,json_encode(['id'=>4,'name'=>'name4']));

echo

"---進隊成功---

"; //檢視佇列

$strcount = $redis->lrange($strkey,0,-1);

echo

"當前資料:";

print_r($strcount);

//出隊

$info = $redis->lpop($strkey);

echo

"---".$info."---出隊成功

"; //檢視佇列

$strcount = $redis->lrange($strkey,0,-1);

echo

"當前資料:";

print_r($strcount);

發布訂閱

發布:

<?php

ini_set('default_socket_timeout',-1);

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$strchannel = 'channel';

$redis->publish($strchannel,"來自的推送");

echo

"--------------訊息推送成功";

訂閱:

<?php

ini_set('default_socket_timeout',-1);

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$strchannel = 'channel';

//訂閱

echo

"等待--------------訊息推送";

$redis->subscribe([$strchannel],'callback');

function

callback

($instance, $channelname, $message)

排行榜
<?php

$redis = new redis();

$redis->connect('127.0.0.1',6379);

$strkey = 'rank';

$redis->zadd($strkey,'50',json_encode(['name'=>'name1']));

$redis->zadd($strkey,'100',json_encode(['name'=>'name2']));

$redis->zadd($strkey,'20',json_encode(['name'=>'name3']));

$redis->zadd($strkey,'60',json_encode(['name'=>'name4']));

$redis->zadd($strkey,'40',json_encode(['name'=>'name5']));

$redis->zadd($strkey,'80',json_encode(['name'=>'name6']));

$data1 = $redis->zrevrange($strkey,0,-1,true);

echo

"從大到小排序:

"; print_r($data1);

$data2 = $redis->zrange($strkey,0,-1,true);

echo

"從小到大排序:

"; print_r($data2);

Redis應用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...

Redis應用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...

Redis應用場景

閱讀 31,232 次 毫無疑問,redis 開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。希望你喜歡這個比喻。下面是一篇新鮮出爐的文章,其作者是re...