本文為網上查詢資料,修改作為筆記記載,
為什麼用 redis 不用 memcached?
memcached存放資料無法持久化(將資料寫到硬碟中)。
redis資料也是存放到記憶體中,所以速度快。並且資料可以週期性寫到硬碟中,redis資料可以持久化。
redis有五種資料型別
字串(string)、list(鍊錶)、set(集合)、zset(有序集合)、hash(雜湊)
php操作redis
一、連線
$redis = new redis();
$redis->connect('127.0.0.1',6379,1);
//短鏈結,本地host,埠為6379,超過1秒放棄
$redis->pconnect('127.0.0.1',6379,1); //長鏈結,本地host,埠為6379,超過1秒放棄
$redis->ping(); //檢查是鏈結,返回 pong即是連線
$redis->select(0); //選擇redis庫,0~15 共16個庫,預設選擇庫是 0
$redis->close();//釋放資源
二、string
$redis->set('test','aa'); //設定 鍵 key = 'test',值 value = 'aa'
$redis->get('test');
//獲取 test 的 值
$redis->delete('test');
// 刪除test 鍵
$redis->
setnx('test','aa');
//如果test鍵不存在,則設定,如果test鍵存在,則無效。
$redis->mset($arr);
//傳入$arr為陣列,設定乙個或多個鍵值
$redis->mget($arr);
//傳入$arr為陣列,獲取乙個或多個值,以陣列形式返回
$redis->getset($arr);
//先獲取值,再覆蓋設定值 ,返回舊值
三、list棧
$redis->lpush('list','val'); //(增) 在列表list的表頭增加乙個值val
$redis->rpush('list','val'); //(
增) 在列表list的表尾增加乙個值val
$redis->lpop('list'); //(
刪) 刪除 並返回列表list 的表頭乙個值
$redis->rpop('list'); //(
刪) 刪除
並返回列表list 的表尾乙個值
$redis->ltrim('list',0,2); //(
刪)只保留下標為0到第2個的值,其他刪除
$redis->lrem('list','val',1) //(
刪) 刪除列表list 裡面 的 val 值 1次
$redis->lset('list',2,'val') //(
改) 將 列表list 下標為2的值改為 val
$redis->lindex('list',1);(查) 返回 列表 list 的下標為1 的值
$redis->lrange('list',0,3);(查) 以陣列形式返回 列表 list 的下標為 0到3的值
四、set(
string型別的無序集合。
是通過hash table 實現的,新增、刪除和查詢的複雜度都是0(1)。
對集合我們可以取並集、交集、差集)
$redis->sadd('key','value1','value2','valuen'); //為key集合新增 多個或乙個元素
$redis->smembers('key'); //返回集合key 所有元素
$redis->sinter('key1','key2','keyn');//返回所有給定集合的交集
$redis->sunion('key1','key2','keyn');//返回所有給定集合的並集
$redis->sdiff('key1','key2','keyn');//返回所有給定集合的差集
$redis->
srandmember
('key');//返回集合乙個隨機元素
$redis->srem('key','value1','value2'); //
為key集合刪除多個值或乙個元素
$redis->spop('key') //
移除並返回集合中的乙個隨機元素
$redis->sismember('key','member') //判斷集合key是否有member元素
五、 zset(有序集合)
$redis->zadd('key',1,'aa'); //在key集合新增與 1關聯 元素aa ,集合元素不可重複,可一次新增多個 zadd('key',1,'aa',2,'bb')
$redis->zrange('key',0,1); //獲取集合元素,從 0 到 1
$redis->zdelete('key','aa');刪除key集合裡面的 aa元素
$redis->zrevrange('key',0,1,true); //
獲取集合元素,從0位置 到 -1 位置,陣列按照score降序處理 返回score關聯陣列
$redis->zrangebyscore('key',0,0.2); //獲取score 在0到0.2的元素
$redis->zcount('key',1,10) //計算 score 1到10的元素
$redis->zremrangebyscore('key',1,3); //刪除score區間 1到3
$redis->zremrangebyrank('key',0,1); //刪除下標 區間0到1
$redis->zsize('key'); //返回key有序集合 有多少個元素
$redis->zscore('key','a'); //返回key集合中 a元素對應的score值
$redis->zrange('key','a');//返回key集合中 a元素對應的下標值
$redis->zincrby('key',1.5,'a'); //將集合key中的元素a的score值加1.5
$redis->zunion('union',array('key','key2')) //將集合key和key2合併於集合union,如有重複,則重複元素score值相加
$redis->zunion('union',array('key',key2),arrar(4,2)); // 將key元素的score值乘4,key2元素score值乘2,然後合併,重 復元素則score相加
$redis->zunion('union',array('key',key2),arrar(4,2),'max'); // 如有重複,則score取最大,也可以設定最小值min
$redis->zinter('new',array('k1','k2')); //取k1 k2 的交集於 new,安裝score值排序,如元素種復,則score值相加
$redis->zinter('new',array('k1','k2'),array(4,2),'max'); //k1每個元素乘4,k2每個元素乘2,取交集 於new,重複元素則取最大值(也可min最小值)
五、雜湊(hash)
$redis->hset('key','name','val);//為key新增 名字為name,值為 val
$redis->hmset('key',array('aa'=>'aaa','bb'=>'bbb'));//批量設定新增
$redis->hsetnx('key','name','val');//為key新增 名字為name,值為 val ,存在則返回false
$redis->hget('key','name');//獲取key表的 name 裡面的值
$redis->hmget('key,array('aa','bb'));//批量獲取name欄位的值
$redis->
hlen('key');//獲取key表裡面的字段數
$redis->hdel('key','name');//刪除欄位name
$redis->hkeys('key');//獲取key表所有字段
$redis->hvals('key');//獲取key表所有欄位的值
$redis->hgetall('key』);//獲取key所有欄位和值(關聯陣列)
$redis->hexists('key','name');//判斷key是否含有name欄位
$redis->hincrby('key','name',-2);//為key裡面的字段name 的值 -2,如果非陣列,則返回false
$redis->hincrbyfloat('key','name',-2.5);//為key裡面的字段name 的值 -2.5(浮點數),如果非陣列,則返回false
$redis->zadd('key',1,'aa'); //在key集合新增與 1關聯 元素aa ,集合元素不可重複,可一次新增多個 zadd('key',1,'aa',2,'bb')
php操作redis php操作redis
redis類和redi ception類 redis類用於建立redis客戶端 redis new redis 如果無法訪問redis伺服器,會丟擲redi ception異常物件 連線問題,redis服務已關閉,或者redis主機過載等 在任何其他不涉及無法訪問的伺服器 如金鑰不正確,無效命令等 ...
php操作redis例項
1 獲取所有key,不包括值 redis keys 2 獲取乙個或多個key的值,不限制資料型別 redis mget key1,key2 引數為陣列 3 設定指定key的生命週期 redis expire key,30 設定生命週期為30秒 4 獲取指定key的剩餘生命週期 redis ttl k...
Redis學習手冊
1 redis學習手冊 開篇 一 簡介 二 redis的優勢 三 目前版本中redis存在的主要問題 四 和關係型資料庫的比較 五 如何持久化記憶體資料 2 redis學習手冊 string資料型別 一 概述 二 相關命令列表 三 命令示例 3 redis學習手冊 list資料型別 一 概述 二 相...