php redis 中文API文檔手冊

php redis 中文API文檔手冊?

Redis::__construct構造函數
$redis = new Redis();

connect, open?鏈接redis服務
參數
host: string,服務地址
port: int,端口號
timeout: float,鏈接時長 (可選, 默認為 0 ,不限鏈接時間)
注: 在redis.conf中也有時間,默認為300

pconnect, popen?不會主動關閉的鏈接
參考上面

setOption?設置redis模式

getOption?查看redis設置的模式

ping?查看連接狀態

get?得到某個key的值(string值)
如果該key不存在,return?false

set?寫入key 和 value(string值)
如果寫入成功,return?ture

setex?帶生存時間的寫入值
$redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.

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'));



multi, exec, discard
進入或者退出事務模式
參數可選Redis::MULTI或Redis::PIPELINE. 默認是 Redis::MULTI
Redis::MULTI:將多個操作當成一個事務執行
Redis::PIPELINE:讓(多條)執行命令簡單的,更加快速的發送給服務器,但是沒有任何原子性的保證
discard:刪除一個事務
返回值
multi(),返回一個redis對象,并進入multi-mode模式,一旦進入multi-mode模式,以后調用的所有方法都會返回相同的對象,只到exec()方法被調用。

watch, unwatch?(代碼測試后,不能達到所說的效果)
監測一個key的值是否被其它的程序更改。如果這個key在watch 和 exec (方法)間被修改,這個 MULTI/EXEC 事務的執行將失敗(return false)
unwatch? 取消被這個程序監測的所有key
參數,一對key的列表
$redis->watch('x');

$ret = $redis->multi() ->incr('x') ->exec();


subscribe?*
方法回調。注意,該方法可能在未來里發生改變

publish?*
發表內容到某一個通道。注意,該方法可能在未來里發生改變

exists
判斷key是否存在。存在 true 不在 false

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<0從尾到頭刪除|count|個值為value的元素

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進制信息

zsetsorted set)操作相關
zAdd(key, score, member):向名稱為key的zset中添加元素member,score用于排序。如果該元素已經存在,則根據score更新該元素的順序。
$redis->zAdd('key', 1, 'val1');
$redis->zAdd('key', 0, 'val0');
$redis->zAdd('key', 5, 'val5');
$redis->zRange('key', 0, -1); // array(val0, val1, val5)

zRange(key, start, end,withscores):返回名稱為key的zset(元素已按score從小到大排序)中的index從start到end的所有元素
$redis->zAdd('key1', 0, 'val0');
$redis->zAdd('key1', 2, 'val2');
$redis->zAdd('key1', 10, 'val10');
$redis->zRange('key1', 0, -1); // with scores $redis->zRange('key1', 0, -1, true);

zDelete, zRem
zRem(key, member)?:刪除名稱為key的zset中的元素member
$redis->zAdd('key', 0, 'val0');
$redis->zAdd('key', 2, 'val2');
$redis->zAdd('key', 10, 'val10');
$redis->zDelete('key', 'val2');
$redis->zRange('key', 0, -1);?

zRevRange(key, start, end,withscores):返回名稱為key的zset(元素已按score從大到小排序)中的index從start到end的所有元素.withscores: 是否輸出socre的值,默認false,不輸出
$redis->zAdd('key', 0, 'val0');
$redis->zAdd('key', 2, 'val2');
$redis->zAdd('key', 10, 'val10');
$redis->zRevRange('key', 0, -1); // with scores $redis->zRevRange('key', 0, -1, true);

zRangeByScore, zRevRangeByScore
$redis->zRangeByScore(key, star, end, array(withscores, limit ));
返回名稱為key的zset中score >= star且score <= end的所有元素

zCount
$redis->zCount(key, star, end);
返回名稱為key的zset中score >= star且score <= end的所有元素的個數

zRemRangeByScore, zDeleteRangeByScore
$redis->zRemRangeByScore('key', star, end);
刪除名稱為key的zset中score >= star且score <= end的所有元素,返回刪除個數

zSize, zCard
返回名稱為key的zset的所有元素的個數

zScore
$redis->zScore(key, val2);
返回名稱為key的zset中元素val2的score

zRank, zRevRank
$redis->zRevRank(key, val);
返回名稱為key的zset(元素已按score從小到大排序)中val元素的rank(即index,從0開始),若沒有val元素,返回“null”。zRevRank 是從大到小排序

zIncrBy
$redis->zIncrBy('key',?increment, 'member');
如果在名稱為key的zset中已經存在元素member,則該元素的score增加increment;否則向集合中添加該元素,其score的值為increment

zUnion/zInter
參數
keyOutput
arrayZSetKeys
arrayWeights
aggregateFunction
?Either "SUM", "MIN", or "MAX": defines the behaviour to use on duplicate entries during the zUnion.
對N個zset求并集和交集,并將最后的集合保存在dstkeyN中。對于集合中每一個元素的score,在進行AGGREGATE運算前,都要乘以對于的WEIGHT參數。如果沒有提供WEIGHT,默認為1。默認的AGGREGATE是SUM,即結果集合中元素的score是所有集合對應元素進行SUM運算的值,而MIN和MAX是指,結果集合中元素的score是所有集合對應元素中最小值和最大值。

Hash操作
hSet
$redis->hSet('h', 'key1', 'hello');
向名稱為h的hash中添加元素key1—>hello

hGet
$redis->hGet('h', 'key1');
返回名稱為h的hash中key1對應的value(hello)

hLen
$redis->hLen('h');
返回名稱為h的hash中元素個數

hDel
$redis->hDel('h', 'key1');
刪除名稱為h的hash中鍵為key1的域

hKeys
$redis->hKeys('h');
返回名稱為key的hash中所有鍵

hVals
$redis->hVals('h')
返回名稱為h的hash中所有鍵對應的value

hGetAll
$redis->hGetAll('h');
返回名稱為h的hash中所有的鍵(field)及其對應的value

hExists
$redis->hExists('h', 'a');
名稱為h的hash中是否存在鍵名字為a的域

hIncrBy
$redis->hIncrBy('h', 'x', 2);
將名稱為h的hash中x的value增加2

hMset
$redis->hMset('user:1', array('name' => 'Joe', 'salary' => 2000));
向名稱為key的hash中批量添加元素

hMGet
$redis->hmGet('h', array('field1', 'field2'));
返回名稱為h的hash中field1,field2對應的value

redis 操作相關
flushDB
清空當前數據庫

flushAll
清空所有數據庫

randomKey
隨機返回key空間的一個key
$key = $redis->randomKey();

select
選擇一個數據庫
move
轉移一個key到另外一個數據庫
$redis->select(0); // switch to DB 0
$redis->set('x', '42'); // write 42 to x
$redis->move('x', 1); // move to DB 1
$redis->select(1); // switch to DB 1
$redis->get('x'); // will return 42

rename, renameKey
給key重命名
$redis->set('x', '42');
$redis->rename('x', 'y');
$redis->get('y'); // → 42
$redis->get('x'); // → `FALSE`

renameNx
與remane類似,但是,如果重新命名的名字已經存在,不會替換成功

setTimeout, expire
設定一個key的活動時間(s)
$redis->setTimeout('x', 3);

expireAt
key存活到一個unix時間戳時間
$redis->expireAt('x', time() + 3);

keys, getKeys
返回滿足給定pattern的所有key
$keyWithUserPrefix = $redis->keys('user*');

dbSize
查看現在數據庫有多少key
$count = $redis->dbSize();

auth
密碼認證
$redis->auth('foobared');

bgrewriteaof
使用aof來進行數據庫持久化
$redis->bgrewriteaof();

slaveof
選擇從服務器
$redis->slaveof('10.0.1.7', 6379);

save
將數據同步保存到磁盤

bgsave
將數據異步保存到磁盤

lastSave
返回上次成功將數據保存到磁盤的Unix時戳

info
返回redis的版本信息等詳情



type
返回key的類型值
string: Redis::REDIS_STRING
set: Redis::REDIS_SET
list: Redis::REDIS_LIST
zset: Redis::REDIS_ZSET
hash: Redis::REDIS_HASH
other: Redis::REDIS_NOT_FOUND

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/96057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/96057.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/96057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows環境下實現GitLab與Gitee倉庫代碼提交隔離

1. 背景 在開發工作中&#xff0c;我需要同時使用2個代碼托管平臺&#xff1a;公司統一使用的GitLab和個人學習用的 Gitee。我希望能夠在同一臺電腦上方便地管理和提交兩個平臺的代碼&#xff0c;實現賬號和提交內容的有效隔離。 前提條件&#xff1a; 已安裝Git Bash、Tort…

深度解析:抗輻射電源芯片 ASP4644S2B 在空間環境中的單粒子效應表現

摘要&#xff1a;隨著航天技術的飛速發展&#xff0c;空間電子設備面臨著日益復雜和嚴苛的輻射環境挑戰。單粒子效應&#xff08;SEE&#xff09;作為輻射環境對半導體器件影響的主要形式之一&#xff0c;極大地影響著航天電子系統的可靠性和穩定性。本文通過系統梳理國科安芯推…

【RabbitMQ】如何在 Ubuntu 安裝 RabbitMQ

1. 安裝部署 Erlang 環境 RabbitMQ 是一套開源的消息隊列服務軟件&#xff0c;基于 Erlang 語言編寫的&#xff0c;因此&#xff0c;在安裝 RabbitMQ 之前&#xff0c;我們需要先部署 Erlang 環境&#xff0c;再安裝 RabbitMQ 環境&#xff08;就像運行 Java 程序&#xff0c;…

vue集成高德地圖API工具類封裝

import axios, { AxiosInstance, AxiosResponse } from axios;// 高德地圖 API 響應基礎結構 interface AMapResponse {status: string;info: string;infocode: string; }// 逆地理編碼響應結構 interface RegeoResponse extends AMapResponse {regeocode: {formatted_address:…

手寫 Tomcat

文章目錄02 初出茅廬:構造一個極簡的 HttpServerRequestResponseHttpServer03 動態 Response : 按照規范構造返回流04 各司其職的 Server : 拆分響應模塊與處理模塊HttpConnectorHttpProcessor05 Server 性能提升: 設計多個 ProcessorHttpConnectorHttpProcessor06 規范化: 引入…

嵌入式ARM架構學習3——啟動代碼

一 匯編補充&#xff1a;area reset, code, readonlycode32entry;mov r0, #4 ; r0 4;mov r1, r0 ; r1 r0;mov r2, r1, lsl #1 ;r2 r1 << 1 乘2;mov r3, r1, lsr #1 ;r3 r1 >> 1 除2;mov r4, r1, ror #2;mov r0, #100 ;100是十進制 轉為16進制賦值給十進制;mov …

PNPM庫離線安裝方案

以下是幾種可行的方案&#xff0c;推薦優先使用方案一。 方案一&#xff1a;使用離線鏡像&#xff08;Offline Mirror&#xff09; - 最優雅、最PNPM的方式 這是 PNPM 官方推薦的處理離線環境的方式。它會在內網電腦上創建一個所有依賴包的壓縮文件&#xff08;tarball&#x…

[Wit]CnOCR模型訓練全流程簡化記錄(包括排除BUG)

stepfile:step 00 創建數據集 目錄結構 yourproject -data --myset ---images #存放訓練圖片 ---dev.tsv #測試標簽 tsv格式 圖片文件名\t內容 ---train.tsv #訓練標簽 tsv格式 圖片文件名\t內容 -train_config.json -train_config_gpu.json -fix_cnocr_encoding.py step 01 創…

Sklearn(機器學習)實戰:鳶尾花數據集處理技巧

1.數據集的使用&#xff1a;先使用load導入鳶尾花數據&#xff1a;from sklearn.datasets import load_iris然后定義一個函數來查看鳶尾花數據集&#xff1a;數據集的獲取&#xff1a;iris load_iris()print(鳶尾花的數據集&#xff1a;\n,iris)使用iris[DESCR]來查看數據及里…

【企業微信】接口報錯:javax.net.ssl.SSLHandshakeException

詳細報錯信息 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target原因 關于qyapi…

光子芯片驅動的胰腺癌早期檢測:基于光學子空間神經網絡的高效分割方法

光子芯片驅動的胰腺癌早期檢測:基于光學子空間神經網絡的高效分割方法 1 論文核心概念 本文提出了一種基于集成光子芯片的光學子空間神經網絡(Optical Subspace Neural Network, OSNN),用于胰腺癌的早期檢測與圖像分割。其核心思想是利用光子芯片的高并行性、低延遲和低能…

Scikit-learn Python機器學習 - 特征降維 壓縮數據 - 特征提取 - 主成分分析 (PCA)

鋒哥原創的Scikit-learn Python機器學習視頻教程&#xff1a; 2026版 Scikit-learn Python機器學習 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程主要講解基于Scikit-learn的Python機器學習知識&#xff0c;包括機器學習概述&#xff0c;特征工程(數據…

【Python】pytorch安裝(使用conda)

# 創建 PyTorch 虛擬環境 conda create -n pytorch_env python3.10# 激活環境 conda activate pytorch_env# 安裝 PyTorch&#xff08;CPU版本&#xff09; conda install pytorch torchvision torchaudio cpuonly -c pytorch# 或者安裝 GPU 版本&#xff08;如果有NVIDIA顯卡&…

ThreeJS骨骼示例

<html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>骨骼動畫混合演示</title><style>body {margin: 0;padding: …

python + Flask模塊學習 1 基礎用法

目錄 Flask 的主要作用 常用擴展 Flask 基本用法 1. 安裝 Flask&#xff08;再安裝個postman用來調試測試API哈 2. 最小化應用示例 3. 運行應用 Flask 是一個輕量級的 Python Web 框架&#xff0c;它簡潔靈活&#xff0c;適合快速開發 Web 應用和 API。它被稱為 "微…

python數據可視化之Matplotlib(8)-Matplotlib樣式系統深度解析:從入門到企業級應用

作者&#xff1a;浪浪山齊天大圣 描述&#xff1a;深入探索Matplotlib樣式系統的核心機制&#xff0c;掌握從基礎樣式到企業級樣式管理的完整解決方案引言 在數據可視化的世界里&#xff0c;一個優秀的圖表不僅要準確傳達數據信息&#xff0c;更要具備專業的視覺效果。Matplotl…

3.HTTP/HTTPS:報文格式、方法、狀態碼、緩存、SSLTLS握手

HTTP/HTTPS&#xff1a;報文格式、方法、狀態碼、緩存、SSL/TLS握手 1. HTTP報文格式 1.1 HTTP請求報文(Request) GET /api/v1/users HTTP/1.1 // 請求行&#xff1a;方法、URI、協議版本 Host: api.example.com // 請求頭 (Headers) User-Agent: Mozil…

【慢教程】Ollama4:ollama命令匯總

??教程說明 Ollama 是一款輕量級本地大模型部署工具&#xff0c;使用廣泛&#xff0c;且容易上手&#xff0c;適合作為AI技術的入門。 &#x1f9e9;教程各部分鏈接&#xff1a; 第一課&#xff1a;ollama運行原理介紹及同類工具對比 ollama運行原理介紹及同類工具對比&am…

JAVA Predicate

簡單來說&#xff0c;當我明確知道此次判斷的邏輯時就可以直接使用if&#xff0c;但是我這次的判斷邏輯可能會隨著某個參數變化的時候使用Predicate比如當我想要判斷某長段文字中是否包含list<String> 中的元素&#xff0c;并且包含的元素個數大于 list<String>最后…

什么是PFC控制器

一句話概括PFC控制器是一種智能芯片&#xff0c;它通過控制電路中的電流波形&#xff0c;使其與電壓波形保持一致&#xff0c;從而減少電力浪費&#xff0c;提高電能的利用效率。PFC控制器IC的核心作用就是控制一顆功率MOSFET的開關&#xff0c;通過特定的電路拓撲&#xff08;…