PHP使用Redis


一、安裝php類庫

直接下載,github的倉庫

https://github.com/nrk/predis

或者 composer安裝
composer require predis/predis

二、測試是否可用

linux Redis服務

是否啟動
ps aux | grep redis
啟動
./bin/redis-server ./redis.conf
關閉
./bin/redis-cli shutdown

Redis的默認配置

'host' => '127.0.0.1',
'port' => 6379

php使用簡單流程

require "./predis-1.1/autoload.php";
$redis = new Predis\Client([
    'scheme' => 'tcp',
    'host' => '127.0.0.1',
    'port' => 6379,
]);

//設置值和獲取值
try
{
    $redis->set('update_ucenter_order_time', time());
    $lastUpdatTime = $redis->get('update_ucenter_order_time');
} 
catch (Exception $e)
{
    echo $e->getMessage();
}
print($lastUpdatTime);

三、常用操作

Redis支持類型

String: 字符串
Hash: 散列
List: 列表
Set: 集合
Sorted Set: 有序集合

3.1 string操作

linux環境下

whereis redis-cli

/usr/local/bin/redis-cli 
進入redis-cli
127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> get name
"tom"
查看所有key值
127.0.0.1:6379> keys *
    刪除所有key值
127.0.0.1:6379> flushall

php

$redis->set('name', 'tom');
$redis->get('name');

3.2 Hash操作

Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。
linux環境下

127.0.0.1:6379> hmset user name tom age 20 description "i like run..."
OK
127.0.0.1:6379> hgetall user
1) "name"
2) "tom"
3) "age"
4) "20"
5) "description"
6) "i like run..."
127.0.0.1:6379> hget user age
"20"

可參考文章:https://www.runoob.com/redis/redis-hashes.html

php

//為user表中的字段賦值。成功返回1,失敗返回0。若user表不存在會先創建表再賦值,若字段已存在會覆蓋舊值。
$redis->hSet('user', 'name', 'tom');
$redis->hSet('user', 'age', 20);
$redis->hSet('user', 'description', 'i like run...');

//獲取user表中指定字段的值。若user表不存在則返回false。
$redis->hGet('user', 'name');

//查看user表的某個字段是否存在,存在返回true,否則返回false。
$redis->hExists('user', 'name');


//同時設置某個user表的多個字段值。成功返回true。
$redis->hMset('user', ['name' => 'jet', 'age' => 18]);

//同時獲取某個user表的多個字段值。其中不存在的字段值為false。
$redis->hMget('user', ['name', 'age']);

//獲取某個user表所有的字段和值。
$redis->hGetAll('user');

3.3 list操作

Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

linux下

127.0.0.1:6379> lpush namelist tom kilye wendy
(integer) 3
127.0.0.1:6379> lrange namelist 0 2
1) "wendy"
2) "kilye"
3) "tom"
127.0.0.1:6379> del namelist
(integer) 1

php

//存儲數據到列表中
$redis->lpush("namelist", "tom");
$redis->lpush("namelist", "kilye");
$redis->lpush("namelist", "wendy");

// 獲取存儲的數據並輸出
$arList = $redis->lrange("namelist", 0 ,2);

3.4集合操作

Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重復的數據。

linux下

127.0.0.1:6379> sadd databases redis mongodb
(integer) 2
127.0.0.1:6379> sadd databases mysql
(integer) 1
127.0.0.1:6379> sadd databases mysql
(integer) 0
127.0.0.1:6379> smembers databases
1) "mongodb"
2) "mysql"
3) "redis"
127.0.0.1:6379> del databases
(integer) 1

php

//加入集合
$redis->sAdd('databases', 'redis');
$redis->sAdd('databases', 'mongodb');
$redis->sAdd('databases', 'mysql');

//返回集合
$redis->sMembers('databases');

//判斷集合里是否存在指定元素,是返回true,否則返回false。
$redis->sismember('databases', 'mysql');

//返回集合中元素的數量。
$redis->scard('databases');

參考文章

https://www.cnblogs.com/junyi-bk/p/10900450.html

https://www.runoob.com/redis/redis-sets.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM