首页 后端开发 PHP问题 php操作redis的常用方法有哪些

php操作redis的常用方法有哪些

Jul 15, 2021 am 11:11 AM
php redis

php redis的方法:connect()、set()、get()、delete()、setnx()、exists()、incr()、decr()、getMultiple()、lpush()、rpush()、lpop()、lget()等。

php操作redis的常用方法有哪些

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

php操作redis的常用方法

1,connect

描述:实例连接到一个Redis.

参数:host: string,port: int

返回值:BOOL 成功返回:TRUE;失败返回:FALSE

示例:

<?php
$redis = new redis();
$result = $redis->connect(&#39;127.0.0.1&#39;, 6379);
var_dump($result); //结果:bool(true)
?>
登录后复制

2,set

描述:设置key和value的值

参数:Key Value

返回值:BOOL 成功返回:TRUE;失败返回:FALSE

示例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$result = $redis->set(&#39;test&#39;,"11111111111");
var_dump($result); //结果:bool(true)
?>
登录后复制

3,get

描述:获取有关指定键的值

参数:key

返回值:string或BOOL 如果键不存在,则返回 FALSE。否则,返回指定键对应的value值。

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$result = $redis->get(&#39;test&#39;);
var_dump($result); //结果:string(11) "11111111111"
?>
登录后复制

4,delete

描述:删除指定的键

参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 … keyN

返回值:删除的项数

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->set(&#39;test&#39;,"1111111111111");
echo $redis->get(&#39;test&#39;); //结果:1111111111111
$redis->delete(&#39;test&#39;);
var_dump($redis->get(&#39;test&#39;)); //结果:bool(false)
?>
登录后复制

5,setnx

描述:如果不存在则设置,如果存在了,则不做变动

参数:key value

返回值:BOOL 成功返回:TRUE;失败返回:FALSE

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->set(&#39;test&#39;,"1111111111111");
$redis->setnx(&#39;test&#39;,"22222222");
echo $redis->get(&#39;test&#39;); //结果:1111111111111
$redis->delete(&#39;test&#39;);
$redis->setnx(&#39;test&#39;,"22222222");
echo $redis->get(&#39;test&#39;); //结果:22222222
?>
登录后复制

6,exists

描述:验证指定的键是否存在

参数key

返回值:Bool 成功返回:TRUE;失败返回:FALSE

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->set(&#39;test&#39;,"1111111111111");
var_dump($redis->exists(&#39;test&#39;)); //结果:bool(true)
?>
登录后复制

7,incr

描述:数字递增存储键值键.

参数:key value:将被添加到键的值

返回值:INT the new value

实例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->set(&#39;test&#39;,"123");
var_dump($redis->incr("test")); //结果:int(124)
var_dump($redis->incr("test")); //结果:int(125)
?>
登录后复制

8,decr

描述:数字递减存储键值。

参数:key value:将被添加到键的值

返回值:INT the new value

实例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->set(&#39;test&#39;,"123");
var_dump($redis->decr("test")); //结果:int(122)
var_dump($redis->decr("test")); //结果:int(121)
?>
登录后复制

9,getMultiple

描述:取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为false,【不可对集合操作,否则为false】

参数:其中包含键值的列表数组

返回值:返回包含所有键的值的数组

实例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->set(&#39;test1&#39;,"1");
$redis->set(&#39;test2&#39;,"2");
$result = $redis->getMultiple(array(&#39;test1&#39;,&#39;test2&#39;));
print_r($result); //结果:Array ( [0] => 1 [1] => 2 )
?>
登录后复制

10,lpush

描述:由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。

参数:key,value

返回值:成功返回数组长度,失败false

实例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
var_dump($redis->lpush("test","111")); //结果:int(1)
var_dump($redis->lpush("test","222")); //结果:int(2)
?>
登录后复制

11,rpush

描述:由列表尾部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。

参数:key,value

返回值:成功返回数组长度,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
var_dump($redis->lpush("test","111")); //结果:int(1)
var_dump($redis->lpush("test","222")); //结果:int(2)
var_dump($redis->rpush("test","333")); //结果:int(3)
var_dump($redis->rpush("test","444")); //结果:int(4)
?>
登录后复制

12,lpop

描述:返回和移除列表的第一个元素

参数:key

返回值:成功返回第一个元素的值 ,失败返回false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->lpush("test","111");
$redis->lpush("test","222");
$redis->rpush("test","333");
$redis->rpush("test","444");
var_dump($redis->lpop("test")); //结果:string(3) "222"
?>
登录后复制

13,lsize,llen

描述:返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。

参数:Key

返回值:成功返回数组长度,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->lpush("test","111");
$redis->lpush("test","222");
$redis->rpush("test","333");
$redis->rpush("test","444");
var_dump($redis->lsize("test")); //结果:int(4)
?>
登录后复制

14,lget

描述:返回指定键存储在列表中指定索引的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE。

参数:key index

返回值:成功返回指定元素的值,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->lpush("test","111");
$redis->lpush("test","222");
$redis->rpush("test","333");
$redis->rpush("test","444");
var_dump($redis->lget("test",3)); //结果:string(3) "444"
?>
登录后复制

15,lset

描述:为列表指定的索引赋新的值,若不存在该索引返回false.

参数:key index value

返回值:成功返回true,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->lpush("test","111");
$redis->lpush("test","222");
var_dump($redis->lget("test",1)); //结果:string(3) "111"
var_dump($redis->lset("test",1,"333")); //结果:bool(true)
var_dump($redis->lget("test",1)); //结果:string(3) "333"
?>
登录后复制

16,lgetrange

描述:

返回在该区域中的指定键列表中开始到结束存储的指定元素【可打印整个列表】,lGetRange(key, start, end)。0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二…

参数:key start end

返回值:成功返回查找的值,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->lpush("test","111");
$redis->lpush("test","222");
print_r($redis->lgetrange("test",0,-1)); //结果:Array ( [0] => 222 [1] => 111 )
?>
登录后复制

17,lremove

描述:从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。

参数:key count value

返回值:成功返回删除的个数,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->lpush(&#39;test&#39;,&#39;a&#39;);
$redis->lpush(&#39;test&#39;,&#39;b&#39;);
$redis->lpush(&#39;test&#39;,&#39;c&#39;);
$redis->rpush(&#39;test&#39;,&#39;a&#39;);
print_r($redis->lgetrange(&#39;test&#39;, 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a )
var_dump($redis->lremove(&#39;test&#39;,&#39;a&#39;,2)); //结果:int(2)
print_r($redis->lgetrange(&#39;test&#39;, 0, -1)); //结果:Array ( [0] => c [1] => b )
?>
登录后复制

18,sadd

描述:为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。

参数:key value

返回值:成功返回true,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
var_dump($redis->sadd(&#39;test&#39;,&#39;111&#39;)); //结果:bool(true)
var_dump($redis->sadd(&#39;test&#39;,&#39;333&#39;)); //结果:bool(true)
print_r($redis->sort(&#39;test&#39;)); //结果:Array ( [0] => 111 [1] => 333 )
?>
登录后复制

19,sremove

描述:删除Key中指定的value值

参数:key member

返回值:true or false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd(&#39;test&#39;,&#39;111&#39;);
$redis->sadd(&#39;test&#39;,&#39;333&#39;);
$redis->sremove(&#39;test&#39;,&#39;111&#39;);
print_r($redis->sort(&#39;test&#39;)); //结果:Array ( [0] => 333 )
?>
登录后复制

20,smove

描述:将Key1中的value移动到Key2中

参数:srcKey dstKey member

返回值:true or false

范例

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->delete(&#39;test1&#39;);
$redis->sadd(&#39;test&#39;,&#39;111&#39;);
$redis->sadd(&#39;test&#39;,&#39;333&#39;);
$redis->sadd(&#39;test1&#39;,&#39;222&#39;);
$redis->sadd(&#39;test1&#39;,&#39;444&#39;);
$redis->smove(&#39;test&#39;,"test1",&#39;111&#39;);
print_r($redis->sort(&#39;test1&#39;)); //结果:Array ( [0] => 111 [1] => 222 [2] => 444 )
?>
登录后复制

21,scontains

描述:检查集合中是否存在指定的值。

参数:key value

返回值:true or false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd(&#39;test&#39;,&#39;111&#39;);
$redis->sadd(&#39;test&#39;,&#39;112&#39;);
$redis->sadd(&#39;test&#39;,&#39;113&#39;);
var_dump($redis->scontains(&#39;test&#39;, &#39;111&#39;)); //结果:bool(true)
?>
登录后复制

22,ssize

描述:返回集合中存储值的数量

参数:key

返回值:成功返回数组个数,失败0

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd(&#39;test&#39;,&#39;111&#39;);
$redis->sadd(&#39;test&#39;,&#39;112&#39;);
echo $redis->ssize(&#39;test&#39;); //结果:2
?>
登录后复制

23,spop[可实现随机抽奖功能]

描述:随机移除并返回key中的一个值

参数:key

返回值:成功返回删除的值,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
$redis->sadd("test","333");
var_dump($redis->spop("test")); //结果:string(3) "333"
?>
登录后复制

24,sinter

描述:返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。

参数:key1, key2, keyN

返回值:成功返回数组交集,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
$redis->sadd("test","333");
$redis->sadd("test1","111");
$redis->sadd("test1","444");
var_dump($redis->sinter("test","test1")); //结果:array(1) { [0]=> string(3) "111" }
?>
登录后复制

25,sinterstore

描述:执行sInter命令并把结果储存到新建的变量中。

参数:

  • Key: dstkey, the key to store the diff into.

  • Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.

返回值:成功返回,交集的个数,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
$redis->sadd("test","333");
$redis->sadd("test1","111");
$redis->sadd("test1","444");
var_dump($redis->sinterstore(&#39;new&#39;,"test","test1")); //结果:int(1)
var_dump($redis->smembers(&#39;new&#39;)); //结果:array(1) { [0]=> string(3) "111" }
?>
登录后复制

26,sunion

描述:

返回一个所有指定键的并集

参数:

Keys: key1, key2, … , keyN

返回值:成功返回合并后的集,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
$redis->sadd("test","333");
$redis->sadd("test1","111");
$redis->sadd("test1","444");
print_r($redis->sunion("test","test1")); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )
?>
登录后复制

27,sunionstore

描述:执行sunion命令并把结果储存到新建的变量中。

参数:

Key: dstkey, the key to store the diff into.

Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.

返回值:成功返回,交集的个数,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
$redis->sadd("test","333");
$redis->sadd("test1","111");
$redis->sadd("test1","444");
var_dump($redis->sinterstore(&#39;new&#39;,"test","test1")); //结果:int(4)
print_r($redis->smembers(&#39;new&#39;)); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )
?>
登录后复制

28,sdiff

描述:返回第一个集合中存在并在其他所有集合中不存在的结果【排除第一个数组中,和后续数据重复的值】

参数:Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.

返回值:成功返回数组,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
$redis->sadd("test","333");
$redis->sadd("test1","111");
$redis->sadd("test1","444");
print_r($redis->sdiff("test","test1")); //结果:Array ( [0] => 222 [1] => 333 )
?>
登录后复制

29,sdiffstore

描述:执行sdiff命令并把结果储存到新建的变量中。

参数:

Key: dstkey, the key to store the diff into.

Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis

返回值:成功返回数字,失败false

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
$redis->sadd("test","333");
$redis->sadd("test1","111");
$redis->sadd("test1","444");
var_dump($redis->sdiffstore(&#39;new&#39;,"test","test1")); //结果:int(2)
print_r($redis->smembers(&#39;new&#39;)); //结果:Array ( [0] => 222 [1] => 333 )
?>
登录后复制

30,smembers, sgetmembers

描述:

返回集合的内容

参数:Key: key

返回值:An array of elements, the contents of the set.

范例:

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->delete(&#39;test&#39;);
$redis->sadd("test","111");
$redis->sadd("test","222");
print_r($redis->smembers(&#39;test&#39;)); //结果:Array ( [0] => 111 [1] => 222 )
?>
登录后复制

31,close

描述:释放资源

<?php
$redis = new redis();
$redis->connect(&#39;127.0.0.1&#39;, 6379);
$redis->close()
?>
登录后复制

推荐学习:《PHP视频教程

以上是php操作redis的常用方法有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++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命令验证集群状态;使

PHP的未来:改编和创新 PHP的未来:改编和创新 Apr 11, 2025 am 12:01 AM

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

PHP与Python:了解差异 PHP与Python:了解差异 Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

redis数据怎么清空 redis数据怎么清空 Apr 10, 2025 pm 10:06 PM

如何清空 Redis 数据:使用 FLUSHALL 命令清除所有键值。使用 FLUSHDB 命令清除当前选定数据库的键值。使用 SELECT 切换数据库,再使用 FLUSHDB 清除多个数据库。使用 DEL 命令删除特定键。使用 redis-cli 工具清空数据。

PHP的当前状态:查看网络开发趋势 PHP的当前状态:查看网络开发趋势 Apr 13, 2025 am 12:20 AM

PHP在现代Web开发中仍然重要,尤其在内容管理和电子商务平台。1)PHP拥有丰富的生态系统和强大框架支持,如Laravel和Symfony。2)性能优化可通过OPcache和Nginx实现。3)PHP8.0引入JIT编译器,提升性能。4)云原生应用通过Docker和Kubernetes部署,提高灵活性和可扩展性。

PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

redis怎么读取队列 redis怎么读取队列 Apr 10, 2025 pm 10:12 PM

要从 Redis 读取队列,需要获取队列名称、使用 LPOP 命令读取元素,并处理空队列。具体步骤如下:获取队列名称:以 "queue:" 前缀命名,如 "queue:my-queue"。使用 LPOP 命令:从队列头部弹出元素并返回其值,如 LPOP queue:my-queue。处理空队列:如果队列为空,LPOP 返回 nil,可先检查队列是否存在再读取元素。

PHP:许多网站的基础 PHP:许多网站的基础 Apr 13, 2025 am 12:07 AM

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

See all articles