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

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

<?php
class MyRedis{
private static $handler; private static function handler(){
if(!self::$handler){
self::$handler = new Redis();
self::$handler -> connect('127.0.0.1','6379');
}
return self::$handler;
} public static function get($key){
$value = self::handler() -> get($key);
$value_serl = @unserialize($value);
if(is_object($value_serl)||is_array($value_serl)){
return $value_serl;
}
return $value;
} public static function set($key,$value){
if(is_object($value)||is_array($value)){
$value = serialize($value);
} return self::handler() -> set($key,$value);
} }

调用测试

<?php
require_once 'MyRedis.php'; class MyObj{
public function rTime(){
return time();
}
} $arr = array(1,2,3);
$obj = new MyObj();
$str = ' My name is Jeffrey.'; MyRedis::set('arr',$arr);
MyRedis::set('obj',$obj);
MyRedis::set('str',$str); $_arr = MyRedis::get('arr');
$_obj = MyRedis::get('obj');
$_str = MyRedis::get('str');
var_dump($_arr);
var_dump($_obj->rTime());
var_dump($_str);

Redis如何保存数组和对象的更多相关文章

  1. Redis无法保存ef复杂对象

    最近项目需要使用redis. 然后我就满怀激情开始处理数据层了.在原来查询数据的基础上,有封装了一个redis缓存层. 结果在redis保存ef对象的时候,发现了一个非常尴尬的问题. model: p ...

  2. vue 保存数组和对象, 避免双向绑定影响

    很多时候需要保存数据然后复用该数据,因vue的双向绑定总是不能保存原始数据 随笔记录解决方式 1. 不要把变量放置在data中 2. 保存至新的变量 object :   let obj= Objec ...

  3. Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)

    Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...

  4. JavaScript学习总结(二)数组和对象部分

    pt学习总结(二)数组和对象部分 2016-09-16    分类:WEB开发.编程开发.首页精华暂无人评论     来源:trigkit4 分享到:更多1 对象部分 Object类型 Object  ...

  5. Redis应用场景 及其数据对象 string hash list set sortedset

    原文地址:http://www.cnblogs.com/shanyou/archive/2012/09/04/2670972.html Redis开创了一种新的数据存储思路,使用Redis,我们不用在 ...

  6. Android使用SharedPreferences保存数组

    核心原理: 对象序列化 步骤 1.要保存的对象实现序列化Serializable 2.将序列化的对象保存String(本文的做法是保存为byte数组在转为16进制的String类型保存起来) 3.将保 ...

  7. 从Redis中删除大集合对象的方法

    Redis中的大集合对象,如set.zset等,如果有上千万个元素,一般是不能直接用del命令来删除的,因为del命令可能会耗时几秒钟,而redis本身是单线程的,在高并发的情况下会阻塞大量的请求,严 ...

  8. Android SharedPreferences保存和读取对象

    SharedPreferences保存和读取对象 1.首先要序列化对象(以下是序列化实体类的样例,不方便贴出实体类全部的代码) public class LoginResult extends Bas ...

  9. Redis 的底层数据结构(对象)

    目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层.最常用的数据结构,相信你也掌握的不错. 但 redis 实际存储键值对的时候,是基于对 ...

随机推荐

  1. git中添加多个SSH公钥,以及不同系统之间的差别

    git学习已经也有一段时间了,基本的操作,口令会了一点点,但是还没有git团队开发的实践,这个有待加强~ git是在windows下面模拟Linux环境的,linux自带的ssh服务,可以通过该服务远 ...

  2. SSH综合练习-第1天

    SSH综合练习-仓库管理系统-第一天 综合练习的整体目的: 整合应用 Struts2 .Hibernate.Spring .Mysql . jQuery Ajax.java基础知识 熟悉企业SSH 基 ...

  3. 1.rs.first()、rs.last()、rs.next()、rs.getRow()

    rs.first()获取第一条数据的信息rs.last()获取最后一条数据的信息rs.next()获取下一条数据的信息rs.getRow()获取当前信息的行数 import java.sql.*; p ...

  4. IIS的集成和经典模式的区别

    集成和经典的区别: 1.集成模式集成通用映射,而经典模式必须添加DLL才可以使用通用映射,存在通用映射才可以拦截 2.集成模式是IIS7.0以上,经典模式是IIS6.0以下

  5. php 函数积累第一天

    htmlspecialchars 函数格式化表单输入的转化为html形式 exit - 输出一个消息并且退出当前脚本 list() 用一步操作给一组变量进行赋值. <?php$info = ar ...

  6. bootstrap复习:全局样式

    一.概览 1.Bootstrap 是移动设备优先的. 2.在移动设备浏览器上,通过为视口(viewport)设置 meta 属性为 user-scalable=no 可以禁用其缩放(zooming)功 ...

  7. Oberon程序设计—目录

    内        容前   言1, 什么是Oberon? 1.1 ALGOL家族 1.2 该系统2, 第一:程序 2.1 一个符号来描述的语法: 2.2练习 第一部分,符号和基本类型,分配,控制结构, ...

  8. 大数据加减(Big data addition and subtraction)

    题目描述 Description 加减法是计算中的基础运算,虽然规则简单,但是位数太多了,也难免会出错.现在的问题是:给定任意位数(不超过1000位)的加减法算式,请给出正确结果.为提高速度,保证给定 ...

  9. jQuery控制表格行移动,序号不变

    @model Gd.NetSign.Controllers.DTO.SysPamaterDTO @{ ViewBag.Title = "SysPamatList"; //Layou ...

  10. Excel补全日期(日期按顺序补全)

    1.给出的数据 2.想补全缺失的日期,比如2015/3/1,2015/3/2,... 1)在D列输入完整的日期,如下图所示: 2)在E2处写函数“=IF(ISERR(VLOOKUP(D2,B:C,2, ...