Redis如何保存数组和对象

个人建议使用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);
时间: 2024-08-12 06:39:37

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

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

Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 - 转载请保留该原文链接) 07/19/12 03:08:05 PM 在Jedis开发中,我们很多时候希望直接把一个对象放到Redis中,然后在需要的时候取出来.Redis的key和value都支持二进制安全的字符串,存储Java对象不是问题,下面我们看一下如何来实现. 1要存储的对象 现在写一个

Redis缓存系统(一)Java-Jedis操作Redis,基本操作以及 实现对象保存

源代码下载: http://download.csdn.net/detail/jiangtao_st/7623113 1.Maven配置 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.5.0</version> </dependency> <dependency> <

jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组、对象、Dom元素、二维数组、双层循坏、类json数据等等

jQuery 遍历函数包括了用于筛选.查找和串联元素的方法. 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 获得匹配元素集合中每个元素的所有子元素. .closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素. .contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点. .each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数. .end(

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

转自:http://segmentfault.com/a/1190000000653028 对象部分 Object类型 Object 是一个无序的集合,可以存放任意类型对象,所有其他对象都继承自这个对象.创建Object类型有两种,一种是使用new运算符,一种是字面量表示法. 1.使用new运算符创建Object var obj = new Object();//注意大写,也可以直接写成Object() 注意,通过new Object() 的写法生成新对象,与字面量的写法 obj = {} 是等

Android SharedPreferences保存和读取对象

SharedPreferences保存和读取对象 1.首先要序列化对象(以下是序列化实体类的样例,不方便贴出实体类全部的代码) public class LoginResult extends BaseResult implements Serializable{ private static final long serialVersionUID = 1L; private String mobiletoken; 2.保存和读取对象的封装 public class ObjectSaveUtil

ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套

这是ElasticSearch 2.4 版本系列的第六篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 ElasticSearch入门 第三篇:索引 ElasticSearch入门 第四篇:使用C#添加和更新文档 ElasticSearch入门 第五篇:使用C#查询文档 ElasticSearch入门 第六篇:复合数据类型——数组,对象和嵌套 在ElasticSearch中,使用JSON结构来存储数据,

(一)数组或对象中最会一个属性是否该加逗号的测试

1.结论:在IE8中有兼容问题.会将逗号后面的空也算作一个属性,所以最后一个属性末不要加逗号 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> <script src="lib

js 数组与对象的区别

学习javascript的时候,我曾经一度搞不清楚”数组”(array)和”对象”(object)的根本区别在哪里,两者都可以用来表示数据的集合. 比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢? 我后来才知道,数组表示有序数据的集合,而对象表示无序数据的集合.如果数据的顺序很重要,就用数组,否则就用对象. 当然,

checkbox中jQuery对数组和对象的操作

------------------------------------------------------------------------------------------ 来段小例子,jQuery实现对表单中checkbox的全选/取消/反选 [email protected] <www.chenwei.ws>--------------------------- <input type="checkbox" class="all" /&