redis存储对象

在Java程序中,redis提供的方法插入的key,value要么是string,要么就是byte[]数组。那如果是要插入的value是个对象怎么办呢?网上的方法大多是对这个对象进行序列化。序列化还有一个作用是可以将对象序列化之后通过socket进行传输。那么,JSON也是一个进行数据交换的格式。何不将对象转为JSON字符串然后当作String存在Value中也是可以的。
我用的是alibaba的fastjson,得到它的坐标:

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.8</version>
</dependency>

创建一个Person类


public class Person {private Integer pId;private String pName;public Integer getpId() {return pId;}public void setpId(Integer pId) {this.pId = pId;}public String getpName() {return pName;}public void setpName(String pName) {this.pName = pName;}@Overridepublic String toString() {return "Person{" +"pId=" + pId +", pName='" + pName + '\'' +'}';}
}

配置beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="poolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig"><property name="maxTotal" value="10"></property><property name="minIdle" value="0"></property><property name="maxIdle" value="10"></property></bean><bean id="jedisPool" class="redis.clients.jedis.JedisPool"><constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg><constructor-arg name="host" value="host"></constructor-arg><constructor-arg name="port" value="6379"></constructor-arg><constructor-arg name="timeout" value="2000"></constructor-arg><constructor-arg name="password" value="密码"></constructor-arg></bean>
</beans>

测试

 @Testpublic void test(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");JedisPool jedisPool = (JedisPool)applicationContext.getBean("jedisPool");Jedis jedis = jedisPool.getResource();Person person = new Person();person.setpId(1);person.setpName("Kobe");String str = JSON.toJSONString(person);jedis.set("person",str);String getPersonList = jedis.get("person");Person person1 = JSON.parseObject(getPersonList,Person.class);System.out.println(person1);}

输出结果

Person{pId=1, pName='Kobe'}

redis存储对象(通过JSON方式)相关推荐

  1. Redis 存储对象信息是用 Hash 还是 String

    Redis 内部使用一个 RedisObject 对象来表示所有的 key 和 value,RedisObject 中的 type,则是代表一个 value 对象具体是何种数据类型,它包含字符串(St ...

  2. redis存储对象和集合

    使用redis存储对象或集合时,不能直接存储.需要将对象或集 合通过序列化转换为可存储的json,这里使用了fastjson来转型 redis是一个key-value存储系统.和Memcached类似 ...

  3. Redis存储对象的三种方式

    存储对象的三种方式分别为: 1.将对象序列化后保存到Redis 2.将对象用FastJSON转为JSON字符串后存储 3.将对象用Hash数据类型存储 序列化工具类SerializeUtil publ ...

  4. 【Redis】redis 存储对象 的三种方式

    1.概述 转载:https://blog.csdn.net/u014756827/article/details/88830973 2.方式一:序列化操作 public class Serialize ...

  5. redis 存储对象 的三种方式

    方式一:序列化操作 public class SerializeUtil {/** 序列化* */public static byte[] serizlize(Object object){Objec ...

  6. redis存储对象_redis内存优化总结

    本文主要参考<>一书,主要分为以下六个部分: 1.redisObject对象 2.缩减键值对象 3.共享对象池 4.字符串优化 5.编码优化 6.控制key的数量 一. redisObje ...

  7. 使用redis存储对象,取对象时的一些常见异常

    自动装配失败报空指针异常 报错: java.lang.NullPointerExceptionat com.example.service.UserServiceImpl.sendMsg(UserSe ...

  8. Java操作Redis存储对象类型数据

    背景描述 关于JAVA去操作Redis时,如何存储一个对象的数据,这是大家非常关心的问题,虽然官方提供了存储String,List,Set等等类型,但并不满足我们现在实际应用.存储一个对象是非常常见的 ...

  9. redis存储二进制对象 python_python redis存储对象

    往往我们存放redis的时候都是字符串,可有时候我们也想存储对象怎么办? 首先我们构造对象:class Duankeke(object): def keke(self): print 33333下面演 ...

最新文章

  1. multiprocessing python_Python多线程/进程(threading、multiprocessing)知识覆盖详解
  2. [Oracle][Corruption]究竟哪些检查影响到 V$DATABASE_BLOCK_CORRUPTION
  3. python星号*在函数中、传参时的含义
  4. java 反射获取属性名和值_面试官这样问我Java反射原理,我刚好都会
  5. PHP 官方被黑与“网络军火商”Zerodium 有关?CEO 辟谣:这个漏洞就是垃圾
  6. ORA-02290:违反检查约束条件(sys_c0011321)什么原因
  7. 基于SSM的学生宿舍管理系统
  8. idea各工作区背景颜色设置
  9. 矢量图svg转png的简单方法
  10. 【190112】VC++ 电话簿通讯录程序源代码
  11. 题解:100元买100只鸡,公鸡4元一只,母鸡3元一只,小鸡1元3只,问公鸡,母鸡,小鸡各买了多少只?
  12. 【会议预告】第七届上海国际皮革展览会
  13. Error: Duplicate resources
  14. 数据库原理基本SQL语句练习题及答案1
  15. 就这?阿里p6的面试竟然这么简单
  16. vue使用 svg图片以及修改svg图片颜色
  17. VB.net小技巧——ReoGrid控件添加到工具箱说明
  18. java 3d 配置_Java 3D简介及安装运行
  19. 计算机图形学-扫描转换直线段-直线方程法-DDA算法-中点算法-OPENGL实现-详解
  20. [网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码

热门文章

  1. 面试常见运维故障排除问题总结
  2. 联想linux笔记本电脑有哪些软件,联想终于出Linux笔记本了!真的很赞
  3. 游戏引擎UnityUnreal对比分析
  4. WIFI生成助手分销流量主小程序开发
  5. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?有2种方法
  6. 结束autocad异常进程
  7. python爬虫知识点三--解析豆瓣top250数据
  8. 射频工程师笔记---认识无线电波
  9. (日本)投资信托-我的学习笔记
  10. JAVA综合练习-迷你DVD管理器