大错社区

 找回密码
 免费注册

QQ登录

只需一步,快速开始

[Redis] Redis如何保存数组和对象

[复制链接]
admin 发表于 2017-9-14 13:40:28 | 显示全部楼层 |阅读模式

个人建议使用PHP自带的序列化函数serialize和unserialize函数

我们可以封装一个自己的Redis类

  1. <?php
  2. class MyRedis{
  3.     private static $handler;

  4.     private static function handler(){
  5.         if(!self::$handler){
  6.             self::$handler = new Redis();
  7.             self::$handler -> connect('127.0.0.1','6379');
  8.         }
  9.         return self::$handler;
  10.     }

  11.     public static function get($key){
  12.         $value = self::handler() -> get($key);
  13.         $value_serl = @unserialize($value);
  14.         if(is_object($value_serl)||is_array($value_serl)){
  15.             return $value_serl;
  16.         }
  17.         return $value;
  18.     }

  19.     public static function set($key,$value){
  20.         if(is_object($value)||is_array($value)){
  21.             $value = serialize($value);
  22.         }

  23.         return self::handler() -> set($key,$value);
  24.     }

  25. }
复制代码
调用测试
  1. <?php
  2. require_once 'MyRedis.php';

  3. class MyObj{
  4.     public function rTime(){
  5.         return time();
  6.     }
  7. }

  8. $arr = array(1,2,3);
  9. $obj = new MyObj();
  10. $str = ' My name is Jeffrey.';

  11. MyRedis::set('arr',$arr);
  12. MyRedis::set('obj',$obj);
  13. MyRedis::set('str',$str);

  14. $_arr = MyRedis::get('arr');
  15. $_obj = MyRedis::get('obj');
  16. $_str = MyRedis::get('str');

  17. var_dump($_arr);
  18. var_dump($_obj->rTime());
  19. var_dump($_str);
复制代码



453534 发表于 2018-6-22 13:24:13 | 显示全部楼层
我想下载最新版本的程序
wu8881122 发表于 2018-7-1 15:24:53 | 显示全部楼层
学习了 谢了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|大错网络

GMT+8, 2019-7-16 16:40 , Processed in 0.054011 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表