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. TCP连接建立与终止,及状态转换
  2. OPENSSL的基础使用
  3. 浅谈 DDoS 攻击与防御
  4. 微软HTTP API指南
  5. 数值计算方法(一)——插值
  6. shiro 升级_小米11消息再次确认:骁龙875有独占期,超广角镜头大升级
  7. 剑指Offer之寻找二叉树下一个节点
  8. matlab生成低通滤波,用matlab设计低通滤波器
  9. Solidworks CAM入门教程,简单生成雕刻机刀路,经验分享
  10. CFree 5使用方法
  11. 数独大师级技巧_iphone数独大师级难题求解
  12. java画太极加图片_使用Java 2D绘制黑白太极图案
  13. Vue组件化开发--脚手架的安装使用、目录结构说明
  14. Oracle dmp文件结构探秘
  15. 【硬见小百科】三极管开关原理与场效应管开关原理
  16. Unity的UGUI用TexturePacker全自动打图集,包括九宫格切图信息
  17. 吕旭军:如何打造区块链数字资产交易?
  18. Unity shader 护盾shield的简单实现
  19. AI 开发者被疯抢,华为做了什么?
  20. 在linux用锐捷客户端上校园网

热门文章

  1. 自学Vue开发Dapp去中心化钱包(二)
  2. 好生意TOP新起点(1)
  3. 年底了,公司一般如何花式裁员?该怎样应对?
  4. python编译成exe (使用pyinstaller)
  5. 全球互联网未来发展九大趋势
  6. 视频播放VideoView
  7. c# 汉字换英文,英文转汉字
  8. 探究无bom头的txt文件在打开时获取编码的方式
  9. 【点云处理】Lidar点云障碍物形状估计(1)
  10. python案例——函数递归案例