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);
Redis如何保存数组和对象的更多相关文章
- Redis无法保存ef复杂对象
最近项目需要使用redis. 然后我就满怀激情开始处理数据层了.在原来查询数据的基础上,有封装了一个redis缓存层. 结果在redis保存ef对象的时候,发现了一个非常尴尬的问题. model: p ...
- vue 保存数组和对象, 避免双向绑定影响
很多时候需要保存数据然后复用该数据,因vue的双向绑定总是不能保存原始数据 随笔记录解决方式 1. 不要把变量放置在data中 2. 保存至新的变量 object : let obj= Objec ...
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...
- JavaScript学习总结(二)数组和对象部分
pt学习总结(二)数组和对象部分 2016-09-16 分类:WEB开发.编程开发.首页精华暂无人评论 来源:trigkit4 分享到:更多1 对象部分 Object类型 Object ...
- Redis应用场景 及其数据对象 string hash list set sortedset
原文地址:http://www.cnblogs.com/shanyou/archive/2012/09/04/2670972.html Redis开创了一种新的数据存储思路,使用Redis,我们不用在 ...
- Android使用SharedPreferences保存数组
核心原理: 对象序列化 步骤 1.要保存的对象实现序列化Serializable 2.将序列化的对象保存String(本文的做法是保存为byte数组在转为16进制的String类型保存起来) 3.将保 ...
- 从Redis中删除大集合对象的方法
Redis中的大集合对象,如set.zset等,如果有上千万个元素,一般是不能直接用del命令来删除的,因为del命令可能会耗时几秒钟,而redis本身是单线程的,在高并发的情况下会阻塞大量的请求,严 ...
- Android SharedPreferences保存和读取对象
SharedPreferences保存和读取对象 1.首先要序列化对象(以下是序列化实体类的样例,不方便贴出实体类全部的代码) public class LoginResult extends Bas ...
- Redis 的底层数据结构(对象)
目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层.最常用的数据结构,相信你也掌握的不错. 但 redis 实际存储键值对的时候,是基于对 ...
随机推荐
- 外部系统集成BIEE
1.外部系统集成BIEE 隐藏工具栏和仪表盘右上角的菜单 2.BIEE 11g 嵌入Iframe InIFrameRenderingMode有三种取值,分别是prohibit.sameDomainOn ...
- tomcat识别不出maven web项目
解决办法: 点中项目-->Properties-->project facets 勾选:Dynamic Web Module.java.javaScript Apply-->OK 解 ...
- SQL防漏洞注入攻击小结
3/// 4/// 判断字符串中是否有SQL攻击代码 5/// 6/// 传入用户提交数据 7/// true-安全:false-有注入攻击现有: 8public bool Proces ...
- zoj 2750 Idiomatic Phrases Game
迪杰斯特拉单源最短路算法.对成语进行预处理.做出邻接矩阵即可. #include<cstdio> #include<cstring> #include<cmath> ...
- 【1】ubuntu 安装docker
官方支持安装docker的Ubuntu版本: ubuntu trusty 14.04(LTS) (64位) ubuntu precise 12.04(LTS) (64位) ubuntu raring ...
- Effective JavaScript :第四章
1.理解:prototype.getPrototypeOf和_proto_之间的不同 ①C.prototype用于建立new C()创建的对象的原型. ②Object.getPrototypeOf(o ...
- SBT详解
文章转载自http://beike.iteye.com/blog/1575296 SBT = (not so) Simple Build Tool,是scala的构建工具,与java的maven地位相 ...
- XML 树结构
XML 树结构 XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶". 一个 XML 文档实例 XML 文档使用简单的具有自我描述性的语法: &l ...
- POJ 2209 The King#贪心
(- ̄▽ ̄)-* 水 //水题:潜力^e为正数(e为2时都可以)的儿子都可以去上战场了, //英文要看懂,exponent指数,不超过3的正数 #include<iostream> #i ...
- Python 中的GIL
GIL:Global Interpreter Lock, 全局解释器锁定,是指python虚拟机在执行多线程程序时,任一时刻只有一个线程在执行,这使得多线程程序无法充分利用CPU.对于一般的多 ...