java连接Redis存储对象或值,用byte[]、String两种方式

一、创建Maven项目

二、在pom.xml中添加相关依赖(本案例中用到以下依赖)

<dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.2.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.68</version>
        </dependency>
    </dependencies>

三、连接Redis,简单设置键值,获取值(连接Redis相对比较简单,直接new,传入host和port就可以)

package com.lx;

import org.junit.Test;
import redis.clients.jedis.Jedis;

public class Demo {
    @Test
    public void test(){
        //连接Redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
//        jedis.set("name","测试");
        //根据key值获取value
        String value = jedis.get("name");
        //打印
        System.out.println(value);
        //关闭资源
        jedis.close();
    }
}

四、以byte[]方式存储对象

  1、首先创建User实体(@NoArgsConstructor和@AllArgsConstructor注解分别代表无参构造方法和有参构造方法)

package com.entiy;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {

    private Integer id;

    private String name;

}

  2、编写测试代码

SerializationUtils.serialize(key)方法可以把String类型转换为byte[]类型
SerializationUtils.deserialize(byteValue)方法可以把byte[]类型转换成String类型
 
package com.lx;

import com.entiy.User;
import com.sun.xml.internal.txw2.output.DumpSerializer;
import org.junit.Test;
import org.springframework.util.SerializationUtils;
import redis.clients.jedis.Jedis;
//以byte[]方式存储
public class Demo2 {

    @Test
    public void setTest(){
        //连接Redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //定义key值
        String key = "user";
        //定义value值
        User value = new User(1,"lw_20171224");
        //key值转换成字节
        byte[] byteKey = SerializationUtils.serialize(key);
        //value值转换成字节
        byte[] byteValue = SerializationUtils.serialize(value);

        //存储到Redis中
        jedis.set(byteKey,byteValue);
        //关闭资源
        jedis.close();
    }

    @Test
    public void getTest(){
        //连接Redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //定义key值
        String key = "user";
        //把key值转换成byte[]
        byte[] byteKey = SerializationUtils.serialize(key);
        //根据key值获取到byte[]value
        byte[] byteValue = jedis.get(byteKey);
        //把byte[]value转换成User类型
        User value = (User) SerializationUtils.deserialize(byteValue);
        //打印
        System.out.println(value);
        //关闭资源
        jedis.close();
    }

}

四、以String方式存储对象

  1、首先创建实体(本案例使用上一案例的User实体)

  2、编写测试代码

JSON.toJSONString(value)方法可以把String类型转换为Json类型
JSON.parseObject(jsonValue,User.class)方法可以把Json类型转换成任意类型
package com.lx;

import com.alibaba.fastjson.JSON;
import com.entiy.User;
import org.junit.Test;
import redis.clients.jedis.Jedis;

//以String方式存储
public class Demo3 {

    @Test
    public void setTest(){
        //连接Redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //定义key值
        String key = "String_user";
        //定义value值
        User value = new User(2,"lw_20171224");
        //value值转换成json字符串
        String jsonValue = JSON.toJSONString(value);
        //存储到Redis中
        jedis.set(key,jsonValue);
        //关闭资源
        jedis.close();
    }

    @Test
    public void getTest(){
        //连接Redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //定义key值
        String key = "String_user";
        //根据key值获取json类型value值
        String jsonValue = jedis.get(key);
        //把json类型value转换成User类型
        User value = JSON.parseObject(jsonValue,User.class);
        //打印
        System.out.println(value);
        //关闭资源
        jedis.close();
    }

}

上述案例可以下载RedisDesktopManager软件  Redis图形化工具进行查看,登录软件前必须启动Redis服务,否则登陆失败

posted @ 2020-11-17 14:54  LW_20171224  阅读(1871)  评论(0编辑  收藏  举报