zoukankan      html  css  js  c++  java
  • 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服务,否则登陆失败

  • 相关阅读:
    bootstrap模态框手动开启关闭与设置点击外部不关闭
    mybatis的增删改查返回值小析(六)
    mac安装python本版管理工具pyenv
    taro 编译 建议修改:使用循环的 index 变量作为 key 是一种反优化
    taro-多个input同一个事件处理
    python初探(01D) line 2 SyntaxError: Non-ASCII character 'xe8' 报错
    taro父、子组件通信
    taro---image引入图片
    webpack(五)---模块热替换
    webpack(四)---开发系列
  • 原文地址:https://www.cnblogs.com/lw-20171224/p/13994179.html
Copyright © 2011-2022 走看看