目錄
PHP-redis命令文档
首頁 php教程 php手册 PHP-redis命令文档

PHP-redis命令文档

Jun 13, 2016 am 09:15 AM
key redis 命令 資料庫 文件 本質

PHP-redis命令文档

  Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,它的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力

  Redis 2.0更是增加了很多新特性,如:提升了性能、增加了新的数据类型、更少的利用内存(AOF和VM)

  phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系

  以下是redis官方提供的命令使用技巧:

  Redis::__construct构造函数

  $redis = new Redis();

  connect, open 链接redis服务

  参数

  host: string,服务地址

  port: int,端口号

  timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间)

  注: 在redis.conf中也有时间,默认为300

  ping 查看连接状态

  get 得到某个key的值(string值)

  如果该key不存在,return 特殊值 nil;如果 key 不是字符串类型,那么返回一个错误

  set 写入key 和 value(string值)

  在 Redis 2.6.12 版本以前, set命令总是返回 OK 。

  从 Redis 2.6.12 版本开始, set 在设置操作成功完成时,才返回 OK 。

  如果设置了 NX 或者 XX ,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)。

  setex 带生存时间的写入值

  将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。

  如果 key 已经存在, SETEX 命令将覆写旧值。

  这个命令类似于以下两个命令:

  SET key value

  EXPIRE key seconds # 设置生存时间

  不同之处是, SETEX 是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,

  该命令在 Redis 用作缓存时,非常实用。

  #粒子

  $redis->setex(‘key’, 3600, ‘value’); // sets key → value, with 1h TTL.

  setnx 判断是否重复的,写入值

  #将 key 的值设为 value ,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作

  $redis->setnx(‘key’, ‘value’);

  $redis->setnx(‘key’, ‘value’);

  delete 删除指定key的值

  返回已经删除key的个数(长整数)

  $redis->delete(‘key1′, ‘key2′);

  $redis->delete(array(‘key3′, ‘key4′, ‘key5′));

  ttl

  得到一个key的生存时间

  persist

  移除生存时间到期的key

  如果key到期 true 如果不到期 false

  mset (redis版本1.1以上才可以用)

  同时给多个key赋值

  $redis->mset(array(‘key0′ => ‘value0′, ‘key1′ => ‘value1′));

  exists

  判断key是否存在。存在 true 不在 false

  $redis->exists(‘test’);

  incr, incrBy

  key中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值

  $redis->incr(‘key1′);

  $redis->incrBy(‘key1′, 10);

  decr, decrBy

  做减法,使用方法同incr

  getMultiple

  传参

  由key组成的数组

  返回参数

  如果key存在返回value,不存在返回false

  $redis->set(‘key1′, ‘value1′);

  $redis->set(‘key2′, ‘value2′);

  $redis->set(‘key3′, ‘value3′);

  $redis->getMultiple(array(‘key1′, ‘key2′, ‘key3′));

  $redis->lRem(‘key1′, ‘A’, 2);

  $redis->lRange(‘key1′, 0, -1);#获取所有的列表

  list相关操作

  lPush

  $redis->lPush(key, value);

  在名称为key的list左边(头)添加一个值为value的 元素

  rPush

  $redis->rPush(key, value);

  在名称为key的list右边(尾)添加一个值为value的 元素

  lPushx/rPushx

  $redis->lPushx(key, value);

  在名称为key的list左边(头)/右边(尾)添加一个值为value的元素,如果value已经存在,则不添加

  lPop/rPop

  $redis->lPop(‘key’);

  输出名称为key的list左(头)起/右(尾)起的第一个元素,删除该元素

  blPop/brPop

  $redis->blPop(‘key1′, ‘key2′, 10);

  lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi+1开始的list执行pop操作

  lSize

  $redis->lSize(‘key’);

  返回名称为key的list有多少个元素

  lIndex, lGet

  $redis->lGet(‘key’, 0);

  返回名称为key的list中index位置的元素

  lSet

  $redis->lSet(‘key’, 0, ‘X’);

  给名称为key的list中index位置的元素赋值为value

  lRange, lGetRange

  $redis->lRange(‘key1′, 0, -1);

  返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有)

  lTrim, listTrim

  $redis->lTrim(‘key’, start, end);

  截取名称为key的list,保留start至end之间的元素

  lRem, lRemove

  $redis->lRem(‘key’, ‘A’, 2);

  删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count

  lInsert

  在名称为为key的list中,找到值为pivot 的value,并根据参数Redis::BEFORE | Redis::AFTER,来确定,newvalue 是放在 pivot 的前面,或者后面。如果key不存在,不会插入,如果 pivot不存在,return -1

  $redis->delete(‘key1′); $redis->lInsert(‘key1′, Redis::AFTER, ‘A’, ‘X’); $redis->lPush(‘key1′, ‘A’); $redis->lPush(‘key1′, ‘B’); $redis->lPush(‘key1′, ‘C’); $redis->lInsert(‘key1′, Redis::BEFORE, ‘C’, ‘X’);

  $redis->lRange(‘key1′, 0, -1);

  $redis->lInsert(‘key1′, Redis::AFTER, ‘C’, ‘Y’);

  $redis->lRange(‘key1′, 0, -1);

  $redis->lInsert(‘key1′, Redis::AFTER, ‘W’, ‘value’);

  rpoplpush

  返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

  $redis->delete(‘x’, ‘y’);

  $redis->lPush(‘x’, ‘abc’); $redis->lPush(‘x’, ‘def’); $redis->lPush(‘y’, ’123′); $redis->lPush(‘y’, ’456′); // move the last of x to the front of y. var_dump($redis->rpoplpush(‘x’, ‘y’));

  var_dump($redis->lRange(‘x’, 0, -1));

  var_dump($redis->lRange(‘y’, 0, -1));

  string(3) “abc”

  array(1) { [0]=> string(3) “def” }

  array(3) { [0]=> string(3) “abc” [1]=> string(3) “456″ [2]=> string(3) “123″ }

  SET操作相关

  sAdd

  向名称为key的set中添加元素value,如果value存在,不写入,return false

  $redis->sAdd(key , value);

  sRem, sRemove

  删除名称为key的set中的元素value

  $redis->sAdd(‘key1′ , ‘set1′);

  $redis->sAdd(‘key1′ , ‘set2′);

  $redis->sAdd(‘key1′ , ‘set3′);

  $redis->sRem(‘key1′, ‘set2′);

  sMove

  将value元素从名称为srckey的集合移到名称为dstkey的集合

  $redis->sMove(seckey, dstkey, value);

  sIsMember, sContains

  名称为key的集合中查找是否有value元素,有ture 没有 false

  $redis->sIsMember(key, value);

  sCard, sSize

  返回名称为key的set的元素个数

  sPop

  随机返回并删除名称为key的set中一个元素

  sRandMember

  随机返回名称为key的set中一个元素,不删除

  sInter

  求交集

  sInterStore

  求交集并将交集保存到output的集合

  $redis->sInterStore(‘output’, ‘key1′, ‘key2′, ‘key3′)

  sUnion

  求并集

  $redis->sUnion(‘s0′, ‘s1′, ‘s2′);

  s0,s1,s2 同时求并集

  sUnionStore

  求并集并将并集保存到output的集合

  $redis->sUnionStore(‘output’, ‘key1′, ‘key2′, ‘key3′);

  sDiff

  求差集

  sDiffStore

  求差集并将差集保存到output的集合

  sMembers, sGetMembers

  返回名称为key的set的所有元素

  sort

  排序,分页等

  参数

  ‘by’ => ‘some_pattern_*’,

  ‘limit’ => array(0, 1),

  ‘get’ => ‘some_other_pattern_*’ or an array of patterns,

  ‘sort’ => ‘asc’ or ‘desc’,

  ‘alpha’ => TRUE,

  ‘store’ => ‘external-key’

  例子

  $redis->delete(‘s’); $redis->sadd(‘s’, 5); $redis->sadd(‘s’, 4); $redis->sadd(‘s’, 2); $redis->sadd(‘s’, 1); $redis->sadd(‘s’, 3);

  var_dump($redis->sort(‘s’)); // 1,2,3,4,5

  var_dump($redis->sort(‘s’, array(‘sort’ => ‘desc’))); // 5,4,3,2,1

  var_dump($redis->sort(‘s’, array(‘sort’ => ‘desc’, ‘store’ => ‘out’))); // (int)5

  string命令

  getSet

  返回原来key中的值,并将value写入key

  $redis->set(‘x’, ’42′);

  $exValue = $redis->getSet(‘x’, ‘lol’); // return ’42′, replaces x by ‘lol’

  $newValue = $redis->get(‘x’)’ // return ‘lol’

  append

  string,名称为key的string的值在后面加上value

  $redis->set(‘key’, ‘value1′);

  $redis->append(‘key’, ‘value2′);

  $redis->get(‘key’);

  getRange (方法不存在)

  返回名称为key的string中start至end之间的字符

  $redis->set(‘key’, ‘string value’);

  $redis->getRange(‘key’, 0, 5);

  $redis->getRange(‘key’, -5, -1);

  setRange (方法不存在)

  改变key的string中start至end之间的字符为value

  $redis->set(‘key’, ‘Hello world’);

  $redis->setRange(‘key’, 6, “redis”);

  $redis->get(‘key’);

  strlen

  得到key的string的长度

  $redis->strlen(‘key’);

  getBit/setBit

 

  返回2进制信息

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

redis集群模式怎麼搭建 redis集群模式怎麼搭建 Apr 10, 2025 pm 10:15 PM

Redis集群模式通過分片將Redis實例部署到多個服務器,提高可擴展性和可用性。搭建步驟如下:創建奇數個Redis實例,端口不同;創建3個sentinel實例,監控Redis實例並進行故障轉移;配置sentinel配置文件,添加監控Redis實例信息和故障轉移設置;配置Redis實例配置文件,啟用集群模式並指定集群信息文件路徑;創建nodes.conf文件,包含各Redis實例的信息;啟動集群,執行create命令創建集群並指定副本數量;登錄集群執行CLUSTER INFO命令驗證集群狀態;使

MySQL:世界上最受歡迎的數據庫的簡介 MySQL:世界上最受歡迎的數據庫的簡介 Apr 12, 2025 am 12:18 AM

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

redis怎麼讀取隊列 redis怎麼讀取隊列 Apr 10, 2025 pm 10:12 PM

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

redis數據怎麼清空 redis數據怎麼清空 Apr 10, 2025 pm 10:06 PM

如何清空 Redis 數據:使用 FLUSHALL 命令清除所有鍵值。使用 FLUSHDB 命令清除當前選定數據庫的鍵值。使用 SELECT 切換數據庫,再使用 FLUSHDB 清除多個數據庫。使用 DEL 命令刪除特定鍵。使用 redis-cli 工具清空數據。

centos redis如何配置Lua腳本執行時間 centos redis如何配置Lua腳本執行時間 Apr 14, 2025 pm 02:12 PM

在CentOS系統上,您可以通過修改Redis配置文件或使用Redis命令來限制Lua腳本的執行時間,從而防止惡意腳本佔用過多資源。方法一:修改Redis配置文件定位Redis配置文件:Redis配置文件通常位於/etc/redis/redis.conf。編輯配置文件:使用文本編輯器(例如vi或nano)打開配置文件:sudovi/etc/redis/redis.conf設置Lua腳本執行時間限制:在配置文件中添加或修改以下行,設置Lua腳本的最大執行時間(單位:毫秒)

為什麼要使用mysql?利益和優勢 為什麼要使用mysql?利益和優勢 Apr 12, 2025 am 12:17 AM

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

redis命令行怎麼用 redis命令行怎麼用 Apr 10, 2025 pm 10:18 PM

使用 Redis 命令行工具 (redis-cli) 可通過以下步驟管理和操作 Redis:連接到服務器,指定地址和端口。使用命令名稱和參數向服務器發送命令。使用 HELP 命令查看特定命令的幫助信息。使用 QUIT 命令退出命令行工具。

redis過期策略怎麼設置 redis過期策略怎麼設置 Apr 10, 2025 pm 10:03 PM

Redis數據過期策略有兩種:定期刪除:定期掃描刪除過期鍵,可通過 expired-time-cap-remove-count、expired-time-cap-remove-delay 參數設置。惰性刪除:僅在讀取或寫入鍵時檢查刪除過期鍵,可通過 lazyfree-lazy-eviction、lazyfree-lazy-expire、lazyfree-lazy-user-del 參數設置。

See all articles