Redis缓存的试探

项目组成:(本质上就是序列化与反序列化的同时操作)

user类:

package jedis;

 

import lombok.Data;

import lombok.Getter;

import lombok.Setter;

 

import java.io.Serializable;

@Setter@Getter@Data

class User implements Serializable {

private static final long serialVersionUID=-4235509122507469283L;

private Long id;

private String name;

 

public User() {

}

 

public User(Long id, String name) {

this.id = id;

this.name = name;

}

 

@Override

protected Object clone() throws CloneNotSupportedException {

return super.clone();

}

 

@Override

protected void finalize() throws Throwable {

super.finalize();

}

 

}

 

 

序列化与反序列化工具:

SerializeUtils工具类

package jedis;

 

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

 

public final class SerializeUtils {

//序列化

public static byte[] serialize(Object object){

ObjectOutputStream oos=null;

ByteArrayOutputStream baos=null;

try {

baos=new ByteArrayOutputStream();

oos=new ObjectOutputStream(baos);

oos.writeObject(object);

byte[]bytes=baos.toByteArray();

return bytes;

}catch (Exception e){

throw new RuntimeException(e);

}

}

 

 

//反序列化

public static <T>T deserialize(byte[]bytes){

if(bytes==null)

return null;

ByteArrayInputStream bais=null;

try {

bais=new ByteArrayInputStream(bytes);

ObjectInputStream ois=new ObjectInputStream(bais);

return (T)ois.readObject();

}catch (Exception e){

throw new RuntimeException(e);

}

}

}

 

 

 

 

 

 

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

 

<groupId>redis</groupId>

<artifactId>jedis</artifactId>

<version>1.0-SNAPSHOT</version>

<packaging>war</packaging>

 

<name>jedis Maven Webapp</name>

<!-- FIXME change it to the project's website -->

<url>http://www.example.com</url>

 

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>1.7</maven.compiler.source>

<maven.compiler.target>1.7</maven.compiler.target>

</properties>

 

<dependencies>

<dependency>

<groupId>org.hamcrest</groupId>

<artifactId>hamcrest-core</artifactId>

<version>1.3</version>

</dependency>

 

<!-- JUnit4测试工具 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

 

</dependency>

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.8.0</version>

</dependency>

 

<!-- https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-redis -->

<dependency>

<groupId>org.mybatis.caches</groupId>

<artifactId>mybatis-redis</artifactId>

<version>1.0.0-beta2</version>

</dependency>

<!-- lombok插件 -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.16.6</version>

<scope>compile</scope>

</dependency>

</dependencies>

 

<build>

<finalName>jedis</finalName>

<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->

<plugins>

<plugin>

<artifactId>maven-clean-plugin</artifactId>

<version>3.1.0</version>

</plugin>

<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->

<plugin>

<artifactId>maven-resources-plugin</artifactId>

<version>3.0.2</version>

</plugin>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.8.0</version>

</plugin>

<plugin>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.22.1</version>

</plugin>

<plugin>

<artifactId>maven-war-plugin</artifactId>

<version>3.2.2</version>

</plugin>

<plugin>

<artifactId>maven-install-plugin</artifactId>

<version>2.5.2</version>

</plugin>

<plugin>

<artifactId>maven-deploy-plugin</artifactId>

<version>2.8.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

</project>

 

 

 

JedisTest测试类:

package jedis;

 

import org.junit.Test;

import redis.clients.jedis.Jedis;

 

import java.util.HashMap;

import java.util.Map;

 

public class JedisTest {

@Test

public void testHello(){

//1.获得连接对象

Jedis jedis=new Jedis("192.168.159.138",6379);

//2获得数据

String username=jedis.get("username");

System.out.println(username);

//3存储

jedis.set("addr","广东东莞");

System.out.println(jedis.get("addr"));

 

 

jedis.set("foo","bar");

String value=jedis.get("foo");

System.out.println(value);

}

@Test

public void testHash(){

//1.获得连接对象

Jedis jedis=new Jedis("192.168.159.138",6379);

Map<String,String>user=new HashMap<>();

user.put("name","zhouzhou");

user.put("password","123456");

user.put("email","1404031711@qq.com");

Map<String,String>ret=jedis.hgetAll("user:1001");

System.out.println(ret);

}

 

@Test

public void testSaveObject(){

User u=new User(1L,"zhouzhou");

Jedis jedis=new Jedis("192.168.159.138",6379);

jedis.set("user:1".getBytes(),SerializeUtils.serialize(u));

User u2= SerializeUtils.deserialize(jedis.get("user:1".getBytes()));

System.out.println(u2);

}

}

 

 

测试结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值