Java使用redis:将数据插入redis缓存的方式

本文介绍了在Java中如何使用Redis存储对象数据,通过序列化和JSON转换的方式将对象存入Redis缓存。文章讨论了不同序列化方法,如Java原生序列化和protobuf,并提供了具体的实现步骤,包括引入依赖、配置文件设置以及RedisUtil的编写。示例展示了使用JSON存储的对象在Redis中的存储形式。
摘要由CSDN通过智能技术生成

背景:

当redis里面需要存储 “key-字符串,value-对象” 时,是不能直接存对象,而是需要将序列化转换为JSON后的对象存进redis。

redis没有实现内部序列化对象的功能,所以需要自己提前序列化对象及转换为Json对象。

序列化介绍:

序列化的方法有很多,比如java原生序列化(需要实现Serializable接口)、json序列化、protobuff序列化。

protobuff序列化:告诉我对象的class,内部有schema来描述你的class是什么结构,class必须有get/set方法这种标准的类,而不是string等类

关于Serializable和protobuff序列化的介绍在我的上一篇文章:点击打开链接

由于之前对redis有很大兴趣,在使用redis当做数据缓存;所以趁着这些天的时间,自己写了一个将数据插入redis的demo;这里仅供自己后期学习笔记参考,若有不对的地方,请轻拍砖!

第一种:将数据对象转换为JSONString存入redis

1.首先pom文件导入

  <!-- Jedis connection redis-->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
      <version>2.4.2</version>
    </dependency>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <!-- protostuff序列化依赖  -->
    <dependency>
      <groupId>com.dyuproject.protostuff</groupId>
      <artifactId>protostuff-core</artifactId>
      <version>1.0.8</version>
    </dependency>
    <dependency>
      <groupId>com.dyuproject.protostuff</groupId>
      <artifactId>protostuff-runtime</artifactId>
      <version>1.0.8</version>
    </dependency>

2.redis.properties文件配置及 spring文件配置

redis.pool.maxTotal=1000
redis.pool.maxIdle=200
redis.pool.maxWaitMillis=2000
redis.pool.testOnBorrow=true
jedis.host=127.0.0.1
jedis.port=6379
 <context:property-placeholder location="classpath:redis.properties" file-encoding="utf-8" ignore-unresolvable="true"></context:property-placeholder>

    <!--  Jedis config-->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.pool.maxTotal}"/>
        <property name="maxIdle" value="${redis.pool.maxIdle}"/>
        <property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}"/>
        <property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/>

    </bean>

    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
        <constructor-arg ref="jedisPoolConfig"/>
        <constructor-arg value="${jedis.host}" type="java.lang.String"/>
        <constructor-arg type="int" value="${jedis.port}"/>
    </bean>

3.写一个RedisUtil来获取和释放redis资源,得到Jedis对象


                
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值