摘要:以下對安裝客戶端基本操作擴(kuò)展及中的基本接口備忘。這里的只起到提供配置文件模板的作用。當(dāng)多個(gè)元素的相同時(shí),按照其的字典順序排序。注意,需要事先運(yùn)行。
Redis 安裝以下對 Redis 安裝、Redis 客戶端基本操作、PHP-Redis 擴(kuò)展及 PHP 中 Redis 的基本接口備忘。本機(jī)環(huán)境為 Mac。
首先需要下載 Redis,訪問以下網(wǎng)址,選擇 Stable 版本下載:
https://redis.io/download
進(jìn)入解壓后的文件夾,執(zhí)行編譯:
make
之后執(zhí)行:
make install
這一步會(huì)將 Redis 常用的命令如:redis-server, redis-cli 等放入 /usr/local/bin 中,相當(dāng)于添加了環(huán)境變量。
Redis 基本操作 Redis 服務(wù)端啟動(dòng)Redis 分為客戶端和服務(wù)器端,首先我們需要啟動(dòng)服務(wù)端,執(zhí)行:
redis-server
此時(shí)命令行會(huì)停滯在 Redis 服務(wù)啟動(dòng)提示信息中,表示現(xiàn)在 Redis 服務(wù)端正在運(yùn)行,可以使用 Ctrl + Z 中止。
但是,我們更希望 Redis 可以作為一種服務(wù)運(yùn)行于后臺(tái),此時(shí)需要修改 redis.conf 文件:
cd /your/path/to/redis/redis.conf
將 128 行的 daemonize 值修改為 yes,所在行數(shù)可能因版本而有所不同:
daemonize no => daemonize yes
然后重新啟動(dòng) Redis:
redis-server /your/path/to/redis/redis.conf
注意,即使修改了 redis.conf,也需要在 redis-server 后加上這一參數(shù),否則仍然會(huì)以默認(rèn)配置啟動(dòng)。這里的 redis.conf 只起到提供配置文件模板的作用。
這之后可以查看當(dāng)前運(yùn)行的進(jìn)程以檢查 Redis 服務(wù)的啟動(dòng)情況:
ps aux|grep redis-server
停止服務(wù)可以執(zhí)行:
redis-cli shutdownRedis 客戶端
執(zhí)行以下指令進(jìn)入客戶端:
redis-cli
當(dāng)我們修改了默認(rèn)端口號,或需要連接到遠(yuǎn)程時(shí),可以使用:
redis-cli -h 127.0.0.7 -p 6379Redis 數(shù)據(jù)類型
Redis 中有五種數(shù)據(jù)類型:
string:鍵值對形式,鍵為字符串類型,而值可以為字符串或數(shù)字;
list:在兩頭進(jìn)行插入或刪除,可以模擬隊(duì)列和棧;
set:集合,不同元素的值均不相同;
hash:通過鍵可以所索引到一組鍵值對,可以類比二維關(guān)聯(lián)數(shù)組;
zset:有序集合,以 ( score, value ) 的方式組織,并會(huì)按照 score 值進(jìn)行排序;
Redis 客戶端基本操作以下只備忘簡單指令,其他命令可以查閱:
https://redis.io/commands
以下指令需要進(jìn)入 redis-cli 之后執(zhí)行:
1. stringget key1 // 獲取 key1 鍵對應(yīng)的值,若不存在會(huì)輸出 nil set key1 value1 // 設(shè)置 key1 => value1 鍵值對 set key2 123 // 設(shè)置 key2 為 123 incr key2 // 使 key2 對應(yīng)的值自增 1 decr key2 // 使 key2 對應(yīng)的值自減 1 incrby key2 10 // key2 對應(yīng)的值加 10 decrby key2 10 // key2 對應(yīng)的值減 102. list
lpush listA A // 向 listA 這一隊(duì)列的左邊加入 A rpush listA B // 向 listA 這一隊(duì)列的右邊加入 B lpop listA // 從 listA 這一隊(duì)列的左邊彈出第一個(gè)值 rpop listA // 向 listA 這一隊(duì)列的右邊彈出第一個(gè)值 llen listA // 得到 listA 的長度3. set
sadd setA A // 向 setA 這一集合中增加 A scard setA // 得到 setA 這一集合中的長度 sismember setA A // 判斷 A 是否為 setA 集合中元素 srem setA A // 從 setA 集合中移除 A 元素4. hash
hset hashA key1 A // 向 hashA 中添加鍵值對 key1 => A hget hashA key1 // 得到 hashA 中鍵 key1 對應(yīng)的值 hlen hashA // 得到 hashA 含有的鍵值對數(shù) hmget hashA key1 key2 // 獲得 hashA 中多個(gè)鍵對應(yīng)的值5. zset
zadd zsetA 10.1 val1 // 向 zsetA 中加入 score 為 10.1 的 val1 zrange zsetA 0 4 // 獲得 zsetA 中從小到大排序第 0 到第 4 的元素 // 獲得 zsetA 中從小到大排序第 0 到第 4 的元素,輸出時(shí)附帶其對應(yīng)的 score zrange zsetA 0 4 withscores
PHP-Redis 擴(kuò)展注意,zset 中的排序按照 score 從小到大升序進(jìn)行,第 0 為最小值。當(dāng)多個(gè)元素的 score 相同時(shí),按照其 value 的字典順序排序。
我們使用 phpize 和 configure 進(jìn)行擴(kuò)展安裝,可以通過 phpize -v 檢查是否已經(jīng)安裝過 phpize,若沒有,可以使用以下方式進(jìn)行安裝:
yum install php-devel下載擴(kuò)展包
根據(jù)需要下載相應(yīng)的擴(kuò)展源碼包:
PHP5: https://codeload.github.com/phpredis/phpredis/zip/develop PHP7: https://codeload.github.com/phpredis/phpredis/zip/php7編譯擴(kuò)展
解壓后進(jìn)入文件夾中,執(zhí)行:
phpize
然后執(zhí)行:
./configure -with-php-config=/your/path/to/php/bin/php-config
后面的路徑會(huì)使得在之后的 make install 中將編譯后的 redis.so 放到擴(kuò)展指定的目錄,省去了手動(dòng)移動(dòng)的步驟。
之后執(zhí)行:
make
以及:
make install
添加擴(kuò)展配置使用 MAMP 的同學(xué)在編譯遇到問題時(shí)可以參見參考:MAMP環(huán)境下安裝php擴(kuò)展
最后,需要在配置文件添加擴(kuò)展配置,可以使用以下指令查看 php.ini 文件的路徑:
php --ini
之后編輯 php.ini 文件,添加:
extension=redis.so
這時(shí)便可以在 echo phpinfo(); 中看到 Redis 擴(kuò)展的信息了。
注意:若之前沒有使用 -with-php-config 參數(shù),則需要在 make install 后,將生成的 modules/redis.so 移動(dòng)到擴(kuò)展所在目錄中,該目錄可以在 php.ini 中查看到:
extension_dir = /path/to/extensions/PHP 中使用 Redis
以下只羅列基礎(chǔ)的使用方式,詳細(xì)請參見 PHP-Redis 文檔
PHP 中使用 Redis 的方式和通過 redis-cli 使用的方式基本相同。注意,需要事先運(yùn)行 redis-server。
連接 Redis$redis = new Redis(); $redis->connect("localhost");string
$redis->set("key1", "value1"); // 設(shè)置鍵值對 $redis->get("key1"); // 獲取值 $redis->set("number1", 123); $redis->incr("number1"); // 自增 $redis->decrBy("number1", 100); // 減法 $redis->get("number1");list
$redis->lPush("listA", "A"); // 向左側(cè)加入值 $redis->lPush("listA", "B"); $redis->lPush("listA", "C"); // 從右側(cè)彈出值,由此模擬隊(duì)列 $redis->rPop("listA");set
$redis->sAdd("setA", "A"); $redis->sAdd("setA", "B"); $redis->sAdd("setA", "C"); $redis->sAdd("setA", "A"); $redis->sCard("setA"); $redis->sMembers("setA"); // 輸出集合的全部元素hash
$redis->hSet("hashA", "name", "iname"); $redis->hSet("hashA", "age", "age"); // 同時(shí)設(shè)置多個(gè)值 $redis->hMset("hashA", [ "gender" => "male", "salary" => 12000 ]); $redis->hGet("hashA", "salary"); // 獲得多個(gè)值 $redis->hMGet("hashA", ["name", "gender"]);zset
$redis->zAdd("ZSetA", 12, "A"); $redis->zAdd("ZSetA", 10.3, "B"); $redis->zAdd("ZSetA", 11.9, "C"); $redis->zAdd("ZSetA", 9.99, "D"); $redis->zRange("ZSetA", 0, 2); // 輸出全部值 $redis->zRange("ZSetA", 0, -1); // 從大到小降序輸出 $redis->zRevRange("ZSetA", 0, -1);
redis 五種數(shù)據(jù)類型的使用場景 - CSDN
redis---安裝和開啟和關(guān)閉 - CSDN
MAMP PRO安裝PHP擴(kuò)展的方法
MAMP環(huán)境下安裝php擴(kuò)展 - CSDN
Linux下Redis安裝與PHP擴(kuò)展(PHP7適用) - CSDN
Mac環(huán)境下安裝Redis - 簡書
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22499.html
摘要:以下分別備忘版本的部分新增特性。而且,在生成器沒有輸出完全時(shí),使用會(huì)報(bào)錯(cuò)。報(bào)錯(cuò)定義常量數(shù)組多聲明數(shù)組解構(gòu)運(yùn)行時(shí)將部分指令轉(zhuǎn)為機(jī)器碼。對于計(jì)算密集型應(yīng)用有較高的性能提升。 以下分別備忘 PHP 7.0 & 7.1 版本的部分新增特性。 PHP 7.0 ?? 運(yùn)算符 $foo = null; $bar = $foo ?? 123; // 相當(dāng)于 $bar = isset($bar) ? ...
摘要:分別為適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式。設(shè)計(jì)模式五適配器模式適配器模式將某個(gè)對象的接生成器和協(xié)程的實(shí)現(xiàn)在這篇文章中,作者針對那些比較難以理解的概念,以一個(gè)更為通俗的方式去講明白。。 PHP 源碼注解 PHP 的詳細(xì)源碼注解 PHP 字符串操作整理 一些有關(guān)字符串的常用操作。 Redis 常見七種使用場景 (PHP 實(shí)戰(zhàn)) 這篇文章主要介紹利用 R...
本文關(guān)鍵闡述了運(yùn)用Python完成簡易短信驗(yàn)證碼解決,文章內(nèi)容緊扣主題進(jìn)行詳盡的基本介紹,具有很強(qiáng)的實(shí)用價(jià)值,必須的朋友可以學(xué)習(xí)一下 前言 我們做獲取數(shù)據(jù)時(shí),太快或?yàn)g覽經(jīng)常,或一瀏覽便給彈出來短信驗(yàn)證碼,隨后蚌珠了~ 今天小編就給大家來個(gè)簡易解決短信驗(yàn)證碼的辦法 自然環(huán)境控制模塊 這兒需要使用一個(gè)ddddocr模塊,這也是他人開源系統(tǒng)提前準(zhǔn)備好的一樣?xùn)|西,簡單又好用,可是精準(zhǔn)度差一丟...
閱讀 1529·2021-11-19 11:38
閱讀 3592·2021-11-15 11:37
閱讀 840·2021-09-30 09:48
閱讀 993·2021-09-29 09:46
閱讀 927·2021-09-23 11:22
閱讀 1904·2019-08-30 15:44
閱讀 3432·2019-08-26 13:58
閱讀 2410·2019-08-26 13:26