本文目錄一覽:
redis適合什麼場景?
1、緩存。 緩存現在幾乎是所有中大型網站都在用的必殺技,合理的利用緩存不僅能夠提升網站訪問速度,還能大大降低資料庫的壓力。Redis提供了鍵過期功能,也提供了靈活的鍵淘汰策略,所以,現在Redis用在緩存的場合非常多。(推薦:《 Redis視頻教程 》)
2、排行榜。 很多網站都有排行榜應用的,如京東的月度銷量榜單、商品按時間的上新排行榜等。Redis提供的有序集合數據類構能實現各種複雜的排行榜應用。
3、計數器。 什麼是計數器,如電商網站商品的瀏覽量、視頻網站視頻的播放數等。為了保證數據實時效,每次瀏覽都得給+1,並發量高時如果每次都請求資料庫操作無疑是種挑戰和壓力。Redis提供的incr命令來實現計數器功能,內存操作,性能非常好,非常適用於這些計數場景。
4、分散式會話。 集群模式下,在應用不多的情況下一般使用容器自帶的session複製功能就能滿足,當應用增多相對複雜的系統中,一般都會搭建以Redis等內存資料庫為中心的session服務,session不再由容器管理,而是由session服務及內存資料庫管理。
5、分散式鎖。 在很多互聯網公司中都使用了分散式技術,分散式技術帶來的技術挑戰是對同一個資源的並發訪問,如全局ID、減庫存、秒殺等場景,並發量不大的場景可以使用資料庫的悲觀鎖、樂觀鎖來實現,但在並發量高的場合中,利用資料庫鎖來控制資源的並發訪問是不太理想的,大大影響了資料庫的性能。可以利用Redis的setnx功能來編寫分散式的鎖,如果設置返回1說明獲取鎖成功,否則獲取鎖失敗,實際應用中要考慮的細節要更多。
php中redis和memcached區別和應用場景
redis比memcached功能更多更強大,現在基本都是只用redis了.
利用redis的原子性可以給數據加鎖
可以保存臨時數據,比如簡訊驗證碼和session
可以用於實現簡單的隊列任務
可以實現排行榜功能
可以實現經緯度距離計算
……..
當然不止這些,redis是一種key-value資料庫,他的業務場景還可以自己擴展.
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
原創文章,作者:JNJWC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130767.html