A. php redis如何使用
開始在 PHP 中使用 Redis 前,要確保已經安裝了 redis 服務及 PHP redis 驅動,且你的機器上能正常使用 PHP。
PHP安裝redis擴展
/usr/local/php/bin/phpize #php安裝後的路徑
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
修改php.ini文件
vi /usr/local/php/lib/php.ini
增加如下內容:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626"
extension=redis.so
安裝完成後重啟php-fpm 或 apache。查看phpinfo信息,就能看到redis擴展。
連接到 redis 服務
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//查看服務是否運行
echo "Server is running: " . $redis->ping();
?>
執行腳本,輸出結果為:
Connection to server sucessfully
Server is running: PONG
Redis PHP String(字元串) 實例
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//設置 redis 字元串數據
$redis->set("tutorial-name", "Redis tutorial");
// 獲取存儲的數據並輸出
echo "Stored string in redis:: " . jedis.get("tutorial-name");
?>
執行腳本,輸出結果為:
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis PHP List(列表) 實例
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//存儲數據到列表中
$redis->lpush("tutorial-list", "Redis");
$redis->lpush("tutorial-list", "Mongodb");
$redis->lpush("tutorial-list", "Mysql");
// 獲取存儲的數據並輸出
$arList = $redis->lrange("tutorial-list", 0 ,5);
echo "Stored string in redis:: "
print_r($arList);
?>
執行腳本,輸出結果為:
Connection to server sucessfully
Stored string in redis::
Redis
Mongodb
Mysql
Redis PHP Keys 實例
<?php
//連接本地的 Redis 服務
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
// 獲取數據並輸出
$arList = $redis->keys("*");
echo "Stored keys in redis:: "
print_r($arList);
?>
執行腳本,輸出結果為:
Connection to server sucessfully
Stored string in redis::
tutorial-name
tutorial-list
B. PHP刪除Redis所有數據
1、創建userinfo_update.php,用於查詢用戶信息,先顯示信息,在修改:先通過GET獲取用戶編號查詢用戶信息:$sql = "select * from user_info where user_id='".$_GET['userId']."'"; $result = mysql_query($sql,$con);if($row = mysql_fetch_array($result)){}。
C. php 怎麼給redis加查詢鎖
能不能加鎖這個不知道,但是可以用監控watch 和事務結合起來用。因為watch的功能就是當它監控一個鍵的時候,如果這個鍵被修改了,那麼它後面的事務就不會執行。
比如:
set key 1;
watch key
set key 2
mulit
set key 3
exec
get key =>'2' //key在watch後被修改了,所以後面的事務沒有執行
D. php怎麼查看redis的key
首先開啟redis服務:
打開cmd命令窗口,將根目錄切換至redis根目錄;
開啟redis服務:輸入命令:redis-server.exe redis.conf 然後回車。
開啟成功後,此窗口不要關閉,另打開一個cmd窗口,連接客戶端:
1.打開cmd命令窗口,將根目錄切換至redis根目錄;
2.輸入連接命令:redis-cli.exe -h 127.0.0.1 -p 6379 然後回車
3.輸入key的查看命令:keys *
E. 增刪改查操作全部在redis中進行可以嗎
1、獲取key的列表:KEYS pattern 通配符有?*[]和轉義\
2、key是否存在: EXISTS key 存在返回1,不存在返回0.
3、建立key和刪除key:SET key 和 DEL key
4、根據key獲取該鍵所存儲的redis數據類型:TYPE key。返回是string、list、hash、set、zset。
F. thinkphp5模型如何使用redis操作資料庫CURD操作
模型中添加如下代碼,可實現更新或插入前刪除緩存:
protected static function init()
{
TurnGiftSetting::beforeInsert(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeUpdate(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeDelete(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeWrite(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
}
G. 項目使用redis是不是增刪改查都要更新redis
對應資料庫操作同步redis數據:首先查詢不需要更新數據。
其他的操作可以看看是否有其相關聯的redis數據。有值可以先刪除,然後在使用的時候取不到對應的redis值,再查詢資料庫重新更新redis數據以完成同步。
這個是比較普遍的修改資料庫數據同步redis 的方法。
H. php redis 怎麼刪除hash,而不是只刪除了單個或多個域
//刪除單個實體
$redis->hDel('hashkey','key1');
//刪除整個hash
$redis->del('hashkey');
刪除一個redis的key都是用del方法, 不管是string,hash,list,set等類型, 都一樣
I. php中關於redis和資料庫
select 查詢的時候始終先查 redis 有沒有,沒有去查資料庫,再把結果緩存起來;
update 修改完資料庫內容後,同時對 redis 中緩存的數據做一下 update 更新操作,這樣 select 查詢 redis 的時候就是查詢的最新數據;
同理,delete、insert 操作資料庫後也要同時對 redis 中緩存的數據做 update 更新操作,這樣 select 查詢 redis 的時候就是查詢的最新數據;
這樣,所有的查詢操作就都是對 redis 做緩存讀取,可以緩解資料庫的壓力;