成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Redis & PHP 簡易備忘

defcon / 379人閱讀

摘要:以下對安裝客戶端基本操作擴(kuò)展及中的基本接口備忘。這里的只起到提供配置文件模板的作用。當(dāng)多個(gè)元素的相同時(shí),按照其的字典順序排序。注意,需要事先運(yùn)行。

以下對 Redis 安裝、Redis 客戶端基本操作、PHP-Redis 擴(kuò)展及 PHP 中 Redis 的基本接口備忘。本機(jī)環(huán)境為 Mac。

Redis 安裝

首先需要下載 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 shutdown
Redis 客戶端

執(zhí)行以下指令進(jìn)入客戶端:

redis-cli

當(dāng)我們修改了默認(rèn)端口號,或需要連接到遠(yuǎn)程時(shí),可以使用:

redis-cli -h 127.0.0.7 -p 6379
Redis 數(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. string
get 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)的值減 10
2. 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 

注意,zset 中的排序按照 score 從小到大升序進(jìn)行,第 0 為最小值。當(dāng)多個(gè)元素的 score 相同時(shí),按照其 value 的字典順序排序。

PHP-Redis 擴(kuò)展

我們使用 phpizeconfigure 進(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

使用 MAMP 的同學(xué)在編譯遇到問題時(shí)可以參見參考:MAMP環(huán)境下安裝php擴(kuò)展

添加擴(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

相關(guān)文章

  • PHP 7.0 & 7.1 部分新增特性備忘

    摘要:以下分別備忘版本的部分新增特性。而且,在生成器沒有輸出完全時(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) ? ...

    philadelphia 評論0 收藏0
  • PHP基礎(chǔ)

    摘要:分別為適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式。設(shè)計(jì)模式五適配器模式適配器模式將某個(gè)對象的接生成器和協(xié)程的實(shí)現(xiàn)在這篇文章中,作者針對那些比較難以理解的概念,以一個(gè)更為通俗的方式去講明白。。 PHP 源碼注解 PHP 的詳細(xì)源碼注解 PHP 字符串操作整理 一些有關(guān)字符串的常用操作。 Redis 常見七種使用場景 (PHP 實(shí)戰(zhàn)) 這篇文章主要介紹利用 R...

    HtmlCssJs 評論0 收藏0
  • 運(yùn)用Python完成簡易短信驗(yàn)證碼解決

      本文關(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)度差一丟...

    89542767 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<