php redis扩展没有介绍向list中一次性push多个值的用法,但其实lPush和rPush是支持push多个值的,文档中有介绍

lPush - Prepend one or multiple values to a list

rPush - Append one or multiple values to a list

用法也很简单,看示例代码:

connect('127.0.0.1', 6379);

$redis->del('foo');

var_dump($redis->lPush('foo', 'aaaa', 'bbbb', 'cccc', 'dddd'));

print_r($redis->lRange('foo', 0, -1));

运行结果:

[root@localhost php]# php lpush.php

int(4)

Array

(

[0] => dddd

[1] => cccc

[2] => bbbb

[3] => aaaa

)

[root@localhost php]#

但更多时候我们是希望lPush一个数组,但lPush不支持直接传入数组,但我们可以使用以下两种方式来实现:

利用 call_user_func_array 可以使用数组来当参数列表的特性:

connect('127.0.0.1', 6379);

$redis->del('foo');

var_dump(call_user_func_array([$redis, 'lPush'], ['foo', '1111', '2222', '3333', '4444']));

print_r($redis->lRange('foo', 0, -1));

执行结果:

[root@localhost php]# php lpush.php

int(4)

Array

(

[0] => 4444

[1] => 3333

[2] => 2222

[3] => 1111

)

[root@localhost php]#

2 . 使用 php5.6+ 支持的可变参数,在数组前加 '...' 实现把数组当作函数的参数列表

You can also use ... when calling functions to unpack an array or Traversable variable or literal into the argument list:

代码示例:

connect('127.0.0.1', 6379);

$redis->del('foo');

var_dump($redis->lPush('foo', ...['AAAA111', 'BBBB222', 'CCCC333', 'DDDD444']));

print_r($redis->lRange('foo', 0, -1));

运行结果:

[root@localhost php]# php lpush.php

int(4)

Array

(

[0] => DDDD444

[1] => CCCC333

[2] => BBBB222

[3] => AAAA111

)

[root@localhost php]#

一般推荐第二种方式,简单明了

That‘s all

php+redis+保存多个值,php向redis list一次性lPush多个值相关推荐

  1. redis 保存 array list 区别_为什么Redis的RDB备份不用多线程实现CopyOnWrite?

    前言 这篇文章源于我昨天看到的一个有意思的问题. 快照持久化是个很耗时间的操作,而Redis采用fork一个子进程出来进行持久化.理论而言,fork出来的子进程会拷贝父进程所有的数据,这样当Redis ...

  2. laravel用redis保存session遇到的坑,没报错,但redis-cli就是查不到

    laravel用redis保存session遇到的坑, 配置redis存储session流程是这样的 在.evn文件中把session驱动和连接改为了redis的 如下: SESSION_DRIVER ...

  3. vue读取redis 值_Jmeter连接Redis,一定很容易学会吧

    概述 1.jmeter提供一个插件Redis Data Set,但是此插件的功能仅类似于一个CSV Data Set Config.相当于一个前置配置,用于为每个线程.或者每一次循环提供一个参数化的值 ...

  4. redis 保存 array list 区别_Redis科普篇

    这是学习Java的小姐姐第53篇原创文章 前言 hello,好久不见,又断更了一段时间.同事大部分离职了,但是活还是一样,所以只能硬着头皮顶上.现在总算歇会了,决定开启Redis源码系列,希望不要啪啪 ...

  5. redis保存dataset

    公司统一走redis缓存,也将之前的memcache迁移到redis 碰到问题是redis的dataset缓存. memcache底层封装了dataset的序列化. 而redis引的DLL包,未支持. ...

  6. 14 Redis 保存时间序列数据

    14 Redis 保存时间序列数据 前言 一.时间序列数据的读写特点 二.基于 Hash 和 Sorted Set 保存时间序列数据 三.基于 RedisTimeSeries 模块保存时间序列数据 总 ...

  7. redis保存下来,自己慢慢享用

    来源:http://blog.csdn.net/zhiguozhu/article/details/50517527 感谢作者 1,Redis 丰富的数据结构(Data Structures) 字符串 ...

  8. php使用redis做缓存,php使用redis做缓存和使用redis保存session

    php使用redis 一.ubuntu上安装php的redis模块 直接使用命令:sudo apt install php-redis 重启php-fpm: /etc/init.d/php7.3-fp ...

  9. redis有值查询返回null_redis运行lua脚本hmget返回值为空判断问题-Go语言中文社区...

    1.redis中准备测试数据 hmset test abcd 123 ABCD 456 hgetall test 2.网上有人说用内置函数next()判断 redis-cli -c -p 8000 - ...

  10. 有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key中,将小于66值保存至第二个key的值

    1.有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key中,将小于66值保存至第二个key的值 num = {11,22,33,44 ...

最新文章

  1. QT学习之状态机框架
  2. 二叉树的递归和非递归遍历
  3. hive中实现行转列_漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)
  4. Conda solving environment一晚上还不能完成有解吗?
  5. 图解排序算法(三)之堆排序
  6. 对Chrome自动发送邮件插件的改进
  7. 深度linux专业版,用Deepin 15.5 SP2专业版的不要换源更新,否则会成为未授权版本...
  8. 已经被删除的PDF怎么用EasyRecovery恢复
  9. mysql connectors层_mysql底层工作原理
  10. gridview生成的html,.NET_GridView生成的HTML代码示例对比,复制代码 代码如下: asp:GridV - phpStudy...
  11. 架构之美读书笔记之三
  12. PPT母版制作及自定义主题
  13. 你猜我猜不猜 (猜数字游戏) 快来小玩一把叭
  14. 基于Pytorch Mobile在安卓手机端部署深度估计模型
  15. 深度学习模型的构建三、优化函数optimizer
  16. 电子科技20秋C语言在线作业3,【奥鹏】[电子科技大学]20秋《C语言》在线作业3...
  17. 查询每个学生的总成绩的各个科目的分数和姓名,按总成绩排序
  18. 创建二维数组 以及 python中[0 ]* n与[0 for _ in range(n)]的区别与联系
  19. TCP/IP协议四层模型知识
  20. 大内存笔记本如何提升性能

热门文章

  1. Android 外网远程连接真机进行开发调试
  2. 暴力破解zip,rar密码
  3. Spss-多元回归案例实操
  4. android 歌曲的流派信息,音乐流派分类介绍.doc
  5. 控制工程——传递函数与状态方程
  6. 经验收藏:做网站的一些定律
  7. 技术指南 | 理解零知识证明算法之Zk-stark
  8. C/C++利用netsh设置动态IP和静态IP
  9. github常见搜索和热度
  10. The user specified as a definer (‘skip-grants user‘@‘skip-grants host‘) does not exist