`

Redis 常用命令 (php)

    博客分类:
  • PHP
阅读更多
Redis常用命令一
2011年05月12日 星期四 14:57
转自:http://blog.163.com/czg_e/blog/static/46104561201122410916415/
Redis::__construct
描述:
创建一个Redis客户端
范例:
$redis = new Redis();

connect, open
描述:
实例连接到一个Redis.
参数:host: string        port: int
返回值:BOOL 成功返回:TRUE;失败返回:FALSE
范例:
$redis->connect(‘127.0.0.1′, 6379);

get
描述:
获取有关指定键的值
参数:key
返回值:string或BOLL 如果键不存在,则返回 FALSE。否则,与此相关的关键值返回。
范例:
$redis->get(‘key’);

set
描述:
设置关键值参数
参数:Key Value
返回值:BOOL
范例:
$redis->set(‘key’, ‘value’)

setnx
描述:
如果在数据库中不存在该键,设置关键值参数
参数:key value
返回值:BOOL
范例:
$this->redis->setnx(‘key’, ‘value’);
$this->redis->setnx(‘key’, ‘value’);

delete
描述:
删除指定的键
参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 … keyN
返回值:删除的项数
范例:
$redis->set(‘key1′, ‘val1′);
$redis->set(‘key2′, ‘val2′);
$redis->set(‘key3′, ‘val3′);
$redis->set(‘key4′, ‘val4′);
$redis->delete(‘key1′, ‘key2′);
$redis->delete(array(‘key3′, ‘key4′));

exists
描述:
验证指定的键是否存在
参数key
返回值:Bool
范例:
$this->set(‘key’, ‘value’);
$this->exists(‘key’);
$this->exists(‘NonExistingKey’);
incr
描述:
数字递增存储键值键.如果第二个参数被填满,它将被用来作为整数值递增
Increment the number stored at key by one. If the second argument is filled, it will be used as the integer value of the increment.
参数:key value:将被添加到键的值
返回值:INT the new value
范例:
$redis->incr(‘key1′);
$redis->incr(‘key1′);
$redis->incr(‘key1′);
$redis->incr(‘key1′);
decr
描述:
数字递减存储键值。如果第二个参数被填满,它将被用来作为整数值递减
Decrement the number stored at key by one. If the second argument is filled, it will be used as the integer value of the decrement.
参数:key value:将被添加到键的值
返回值:INT the new value
范例:
$redis->decr(‘key1′);
$redis->decr(‘key1′);
$redis->decr(‘key1′);

getMultiple
描述:
取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为假
参数:其中包含键值的列表数组
返回值:返回包含所有键的值的数组
范例:
$redis->set(‘key1′, ‘value1′);
$redis->set(‘key2′, ‘value2′);
$redis->set(‘key3′, ‘value3′);
$redis->getMultiple(array(‘key1′, ‘key2′, ‘key3′));

rPush
描述:
由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。
参数:key,value
返回值:LONG The new length of the list in case of success, FALSE in case of Failure.
范例:
$redis->delete(‘key1′);
$redis->lPush(‘key1′, ‘C’); // returns 1
$redis->lPush(‘key1′, ‘B’); // returns 2
$redis->lPush(‘key1′, ‘A’); // returns 3

lPop
描述:
返回和移除列表的最后一个元素
参数:key
返回值:STRING if command executed successfully BOOL FALSE in case of failure (empty list)
范例:
$redis->rPush(‘key1′, ‘A’);
$redis->rPush(‘key1′, ‘B’);
$redis->rPush(‘key1′, ‘C’);
$redis->lPop(‘key1′);

rPop
描述:
返回和移除列表的第一个元素
参数:key
返回值:STRING if command executed successfully BOOL FALSE in case of failure (empty list)
范例:
$redis->rPush(‘key1′, ‘A’);
$redis->rPush(‘key1′, ‘B’);
$redis->rPush(‘key1′, ‘C’);
$redis->rPop(‘key1′);

lSize
描述:
返回的列表的大小。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。
参数:Key
返回值:
LONG The size of the list identified by Key exists.
BOOL FALSE if the data type identified by Key is not list
范例:
$redis->rPush(‘key1′, ‘A’);
$redis->rPush(‘key1′, ‘B’);
$redis->rPush(‘key1′, ‘C’);
$redis->lSize(‘key1′);
$redis->rPop(‘key1′);
$redis->lSize(‘key1′);

lGet
描述:
返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE。
参数:key index
返回值:
String the element at this index
Bool FALSE if the key identifies a non-string data type, or no value corresponds to this index in the list Key.
范例:
$redis->rPush(‘key1′, ‘A’);
$redis->rPush(‘key1′, ‘B’);
$redis->rPush(‘key1′, ‘C’);
$redis->lGet(‘key1′, 0);
$redis->lGet(‘key1′, -1);
$redis->lGet(‘key1′, 10);

lSet
描述:
为列表指定的索引赋新的值,若不存在该索引返回false.
参数:key index value
返回值:BOOL TRUE if the new value is setted. FALSE if the index is out of range, or data type identified by key is not a list.
范例:
$redis->rPush(‘key1′, ‘A’);
$redis->rPush(‘key1′, ‘B’);
$redis->rPush(‘key1′, ‘C’);
$redis->lGet(‘key1′, 0);
$redis->lSet(‘key1′, 0, ‘X’);
$redis->lGet(‘key1′, 0);

lGetRange
描述:
返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)。0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二…
参数:key start end
返回值:
Array containing the values in specified range.
范例:
$redis->rPush(‘key1′, ‘A’);
$redis->rPush(‘key1′, ‘B’);
$redis->rPush(‘key1′, ‘C’);
$redis->lGetRange(‘key1′, 0, -1);

lRemove
描述:
从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。
参数:key count value
返回值:
LONG the number of elements to remove
BOOL FALSE if the value identified by key is not a list.
范例:
$redis->lPush(‘key1′, ‘A’);
$redis->lPush(‘key1′, ‘B’);
$redis->lPush(‘key1′, ‘C’);
$redis->lPush(‘key1′, ‘A’);
$redis->lPush(‘key1′, ‘A’);
$redis->lGetRange(‘key1′, 0, -1);
$redis->lRemove(‘key1′, ‘A’, 2);
$redis->lGetRange(‘key1′, 0, -1);

sAdd
描述:
为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。
参数:key value
返回值:
BOOL TRUE if value didn’t exist and was added successfully, FALSE if the value is already present.
范例:
$redis->sAdd(‘key1′ , ’set1′);
$redis->sAdd(‘key1′ , ’set2′);
$redis->sAdd(‘key1′ , ’set2′);

sRemove
描述:
删除Key中指定的value值
参数:key member
返回值:BOOL TRUE if the member was present in the set, FALSE if it didn’t.
范例:
$redis->sAdd(‘key1′ , ’set1′);
$redis->sAdd(‘key1′ , ’set2′);
$redis->sAdd(‘key1′ , ’set3′);
$redis->sRemove(‘key1′, ’set2′);

sMove
描述:
将Key1中的value移动到Key2中
参数:srcKey dstKey member
返 回值:BOOL If the operation is successful, return TRUE. If the srcKey and/or dstKey didn’t exist, and/or the member didn’t exist in srcKey, FALSE is returned.
范例:
$redis->sAdd(‘key1′ , ’set11′);
$redis->sAdd(‘key1′ , ’set12′);
$redis->sAdd(‘key1′ , ’set13′);
$redis->sAdd(‘key2′ , ’set21′);
$redis->sAdd(‘key2′ , ’set22′);
$redis->sMove(‘key1′, ‘key2′, ’set13′);

sContains
描述:
检查集合中是否存在指定的值。
参数:key value
返回值:BOOL TRUE if value is a member of the set at key key, FALSE otherwise.
范例:
$redis->sAdd(‘key1′ , ’set1′);
$redis->sAdd(‘key1′ , ’set2′);
$redis->sAdd(‘key1′ , ’set3′);
$redis->sContains(‘key1′, ’set1′);
$redis->sContains(‘key1′, ’setX’);

sSize
描述:
返回集合中存储值的数量
参数:key
返回值:LONG the cardinality of the set identified by key, 0 if the set doesn’t exist.
范例:
$redis->sAdd(‘key1′ , ’set1′);
$redis->sAdd(‘key1′ , ’set2′);
$redis->sAdd(‘key1′ , ’set3′);
$redis->sSize(‘key1′);
$redis->sSize(‘keyX’);

sPop
描述:
随机移除并返回key中的一个值
参数:key
返回值:String “popped” value        Bool FALSE if set identified by key is empty or doesn’t exist.
范例:
$redis->sAdd(‘key1′ , ’set1′);
$redis->sAdd(‘key1′ , ’set2′);
$redis->sAdd(‘key1′ , ’set3′);
$redis->sPop(‘key1′);
$redis->sPop(‘key1′);

sInter
描述:
返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。
参数:key1, key2, keyN: keys identifying the different sets on which we will apply the intersection.
返 回值:Array, contain the result of the intersection between those keys. If the intersection beteen the different sets is empty, the return value will be empty array.
范例:
$redis->sAdd(‘key1′, ‘val1′);
$redis->sAdd(‘key1′, ‘val2′);
$redis->sAdd(‘key1′, ‘val3′);
$redis->sAdd(‘key1′, ‘val4′);
$redis->sAdd(‘key2′, ‘val3′);
$redis->sAdd(‘key2′, ‘val4′);
$redis->sAdd(‘key3′, ‘val3′);
$redis->sAdd(‘key3′, ‘val4′);
var_dump($redis->sInter(‘key1′, ‘key2′, ‘key3′));
输出:
array(2) {[0]=>string(4) “val4″ [1]=>string(4) “val3″}

sInterStore
描述:
执行sInter命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
返回值:INTEGER: The cardinality of the resulting set, or FALSE in case of a missing key.
范例:
$redis->sAdd(‘key1′, ‘val1′);
$redis->sAdd(‘key1′, ‘val2′);
$redis->sAdd(‘key1′, ‘val3′);
$redis->sAdd(‘key1′, ‘val4′);
$redis->sAdd(‘key2′, ‘val3′);
$redis->sAdd(‘key2′, ‘val4′);
$redis->sAdd(‘key3′, ‘val3′);
$redis->sAdd(‘key3′, ‘val4′);
var_dump($redis->sInterStore(‘output’, ‘key1′, ‘key2′, ‘key3′));
var_dump($redis->sMembers(‘output’));
输出:
int(2)
array(2) {
[0]=>
string(4) “val4″
[1]=>
string(4) “val3″
}

sUnion
描述:
返回一个所有指定键的并集
参数:
Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.
返回值:
Array of strings: The union of all these sets.
范例:
$redis->delete(’s0′, ’s1′, ’s2′);
$redis->sAdd(’s0′, ‘1′);
$redis->sAdd(’s0′, ‘2′);
$redis->sAdd(’s1′, ‘3′);
$redis->sAdd(’s1′, ‘1′);
$redis->sAdd(’s2′, ‘3′);
$redis->sAdd(’s2′, ‘4′);
var_dump($redis->sUnion(’s0′, ’s1′, ’s2′));
输出:
array(4) {
[0]=>
string(1) “3″
[1]=>
string(1) “4″
[2]=>
string(1) “1″
[3]=>
string(1) “2″
}

sUnionStore
描述:
执行sUnion命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.
返回值:
INTEGER: The cardinality of the resulting set, or FALSE in case of a missing key.
范例:
$redis->delete(’s0′, ’s1′, ’s2′);
$redis->sAdd(’s0′, ‘1′);
$redis->sAdd(’s0′, ‘2′);
$redis->sAdd(’s1′, ‘3′);
$redis->sAdd(’s1′, ‘1′);
$redis->sAdd(’s2′, ‘3′);
$redis->sAdd(’s2′, ‘4′);
var_dump($redis->sUnionStore(‘dst’, ’s0′, ’s1′, ’s2′));
var_dump($redis->sMembers(‘dst’));
输出:
int(4)
array(4) {
[0]=>
string(1) “3″
[1]=>
string(1) “4″
[2]=>
string(1) “1″
[3]=>
string(1) “2″
}

sDiff
描述:
返回第一个集合中存在并在其他所有集合中不存在的结果
参数:Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.
返回值:Array of strings: The difference of the first set will all the others.
范例:
$redis->delete(’s0′, ’s1′, ’s2′);
$redis->sAdd(’s0′, ‘1′);
$redis->sAdd(’s0′, ‘2′);
$redis->sAdd(’s0′, ‘3′);
$redis->sAdd(’s0′, ‘4′);
$redis->sAdd(’s1′, ‘1′);
$redis->sAdd(’s2′, ‘3′);
var_dump($redis->sDiff(’s0′, ’s1′, ’s2′));
array(2) {
[0]=>
string(1) “4″
[1]=>
string(1) “2″
}

sDiffStore
描述:
执行sDiff命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis
返回值:INTEGER: The cardinality of the resulting set, or FALSE in case of a missing key.
范例:
$redis->delete(’s0′, ’s1′, ’s2′);
$redis->sAdd(’s0′, ‘1′);
$redis->sAdd(’s0′, ‘2′);
$redis->sAdd(’s0′, ‘3′);
$redis->sAdd(’s0′, ‘4′);
$redis->sAdd(’s1′, ‘1′);
$redis->sAdd(’s2′, ‘3′);
var_dump($redis->sDiffStore(‘dst’, ’s0′, ’s1′, ’s2′));
var_dump($redis->sMembers(‘dst’));
Return value: the number of elements of s0 that are neither in s1 nor in s2.
int(2)
array(2) {
[0]=>
string(1) “4″
[1]=>
string(1) “2″
}

sMembers, sGetMembers
描述:
返回集合的内容
参数:Key: key
返回值:An array of elements, the contents of the set.
范例:
$redis->delete(’s’);
$redis->sAdd(’s’, ‘a’);
$redis->sAdd(’s’, ‘b’);
$redis->sAdd(’s’, ‘a’);
$redis->sAdd(’s’, ‘c’);
var_dump($redis->sMembers(’s’));
Output:
array(3) {
[0]=>
string(1) “c”
[1]=>
string(1) “a”
[2]=>
string(1) “b”
}

getSet
描述:
返回当前的Key的值,并修改Key为新的值。
参数:
Key: key
STRING: value
返回值:
A string, the previous value located at this key.
范例:
$redis->set(‘x’, ‘42′);
$exValue = $redis->getSet(‘x’, ‘lol’); // return ‘42′, replaces x by ‘lol’
$newValue = $redis->get(‘x’)’ // return ‘lol’
Redis根本是使用内存存储,持久化的关键是这三条指令:SAVE BGSAVE LASTSAVE …
  当接收到SAVE指令的时候,Redis就会dump数据到一个文件里面。
  值得一说的是它的独家功能:存储列表和集合,这是它与mc之流相比更有竞争力的地方。
  不介绍mc里面已经有的东东,只列出特殊的:
  TYPE key — 用来获取某key的类型
  KEYS pattern — 匹配所有符合模式的key,太淫\荡了,比如KEYS * 就列出所有的key了,当然,复杂度O(n)
  RANDOMKEY - 返回随机的一个key
  RENAME oldkey newkey — key也可以改名
  列表操作,精华
  RPUSH key string — 将某个值加入到一个key列表头部
  LPUSH key string — 将某个值加入到一个key列表末尾
  LLEN key — 列表长度
  LRANGE key start end — 返回列表中某个范围的值,相当于mysql里面的分页查询那样
  LTRIM key start end — 只保留列表中某个范围的值
  LINDEX key index — 获取列表*****定索引号的值,要注意是O(n)复杂度
  LSET key index value — 设置列表中某个位置的值
  LPOP key
  RPOP key — 和上面的LPOP一样,就是类似栈或队列的那种取头取尾指令,可以当成消息队列来使用了
  集合操作
  SADD key member — 增加元素
  SREM key member — 删除元素
  SCARD key — 返回集合大小
  SISMEMBER key member — 判断某个值是否在集合中
  SINTER key1 key2 ... keyN — 获取多个集合的交集元素
  SMEMBERS key — 列出集合的所有元素
分享到:
评论

相关推荐

    PHP操作redis常用命令例子.md

    PHP操作redis使用方法,例子,非常详细,易懂

    redis学习笔记

    redis的常用命令,php对redis的操作,对新手学习redis非常有用。

    Linux源码安装MySQL+MySQL主从+Nginx+Nginx负载均衡+redis+php+phpredis+tomcat

    MySQL5.6.15或者5.7版本,nginx-1.20.2版本,redis3.2.11版本,phpredis-4.2.0版本,php-8.1.1,tomcat8.0.21版本。里面详细介绍了各种软件的源码安装过程,和遇到...结尾附赠一些MySQL常用命令资料,希望能帮到你。。

    redis使用方法

    hmset() 命令用于同时将多个 key-value (字段-值)对设置到哈希表中 incr() key中的值进行自增1 使用方法: { $uid=$redis->incr('userid'); $arr=[ 'uid' => $uid, 'username' => "测试~", 'password' => 'b', ...

    redis基础资料

    Redis是一款开源的、高性能的键-值存储(key-value store)。它常被称作是一款数据结构服务器(data structure server)。...php常用的是phpredis, JAVA常用的是Jedis( http://redis.io/clients )

    redis安装、配置、使用和redis php扩展安装教程

    主要介绍了redis安装、配置、使用和redis php扩展安装教程,其中redis使用的是编译安装,同时介绍了redis常用配置说明、常用命令,要的朋友可以参考下

    Linux+Nginx+Memcached+Redis+PHP+电商购物模块实战开发

    为适应企业对高端开发工程师的需求,整合了Linux系统的常见使用,包括文件操作、权限操作、常用shell命令,以及mysql、nginx、php环境的搭建,让童鞋们顺利掌握Linux下的开发,适应大公司的工作场景。另外的重头戏...

    Redis的图形界面管理工具-Redis Desktop Manager

    一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。 Redis Desktop Manager(RedisDesktopManager,RDM)是一个快速、简单、支持跨平台的 Redis 桌面管理工具,基于 Qt 5 ...

    redis-desktop-manager-2019.3.0.zip

    一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。 Redis Desktop Manager是一款可以跨平台的redis可视化工具,该工具可以说很大程度上弥补了memcached这类key/value...

    redis-desktop-manager-2020.0.0.zip

    一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。 Redis Desktop Manager是一款可以跨平台的redis可视化工具,该工具可以说很大程度上弥补了memcached这类key/value...

    Redis Desktop Manager 2020.5 非个人编译版

    Redis Desktop Manager是一款可以跨平台的redis可视化工具,该工具可以说很大程度上弥补了memcached这类key/value存储...一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。

    redis-desktop-manager-2019.4.rar

    一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。 Redis Desktop Manager是一款可以跨平台的redis可视化工具,该工具可以说很大程度上弥补了memcached这类key/value...

    redis-desktop-manager-2019.5.0.rar

    一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。 Redis Desktop Manager是一款可以跨平台的redis可视化工具,该工具可以说很大程度上弥补了memcached这类key/value...

    dnmp:Docker LNMP(Nginx,PHP7PHP5,MySQL,Redis)

    可任意切换(PHP5.4、PHP5.6、PHP7.1、PHP7.2、PHP7.3)支持绑定任意多个域名支持HTTPS和HTTP/2PHP源代码、MySQL数据、配置文件、日志文件都可在Host中直接修改查看内置完整PHP扩展安装命令默认支持pdo_mysql、mysqli...

    RDM-2021.7.0.exe

    一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作。 0.9.4版本之后开始收费,想要使用免费版本需要自己对原码进行编译。官方编译教程。 自 2020.5.137 版本开始,Redis ...

    rdm-2020.1.rar

    Redis Desktop Manager for windows是一款可以跨平台的redis可视化工具,兼容win、mac等操作系统,该工具可以说很大程度上弥补了memcached这类key/value存储的不足,为Java、C/C++、C#、PHP、JavaScript、Perl、...

    项目基于shell、python,开发的运维脚本工具库

    实现快速安装nginx、mysql、php、redis、nagios、运维经常使用的脚本等等... 简单 高效 快捷!Linux下很多操作命令,都可以根据业务需求通用化,脚本化,关键是思路,很多LAMP/LNMP一键安装包,也是这样。脚本化后,...

    zPhal-dockerfiles:支持zPhal工作环境的dockerfile

    使用前需了解 Docker 的基本概念,常用基本命令。 可以一条条命令执行docker命令来构建镜像,容器。这里推荐使用 docker-compose 来管理,执行项目,下面是使用流程。 相关软件版本: PHP 7.2 MySQL 5.7 Nginx 1.12 ...

    CTF Web各种题目的解题姿势

    课时11:SQL注入常用基础Trick18'15 第2章 代码执行与命令执行 课时1:代码执行介绍49'32 课时2:命令执行介绍20'14 课时3:命令执行分类20'12 课时4:命令执行技巧24'30 课时5:长度限制的命令执行25'46 ...

Global site tag (gtag.js) - Google Analytics