java链接redis springboot整合

        一 java链接redis

                1.引入redis的依赖jar包

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

        

               2 java代码操作redis

                        2.1 先获取链接对象

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

                         2.2 操作String数据类型

  jedis.set("k1","v1");
        jedis.set("k2","v2");
        jedis.setnx("k1","v3");
        jedis.mset("k3","v3","k4","v4","k5","v5");
        List<String> mget = jedis.mget("k1", "k2", "k3", "k4");
        System.out.println(mget);

                                       输出结果

                        linux中输出结果

                                           

                        2.3 操作hash类型

                                

 Map map=new HashMap();
            map.put("name","xyf");
            map.put("age","22");
            map.put("sex","男");
            jedis.hset("k1",map);
        Map<String, String> map1 = jedis.hgetAll("k1");
        System.out.println(map1);

                         输出结果

        二  springboot整合redis

                       1.创建一个springboot 项目  

                        2.引入redis整合依赖

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

                        3.在配置文件中配置链接链接路径和端口号

spring.redis.host=192.168.118.3     //自己虚拟机的ip
spring.redis.port=6379               //若果默认端口号没有修改,端口号可以不写

                                4.测试 --StringRedistemplace(对String类型的操作)

  @Autowired
    StringRedisTemplate stringRedisTemplate; //存放的数据类型为String数据类型
    @Test
    void contextLoads() {
        ValueOperations<String,String > ops=stringRedisTemplate.opsForValue();
        ops.set("k1","springboot-v1");
        System.out.println(ops.get("k1"));
        Boolean aBoolean = ops.setIfAbsent("k2", "java难吗?");
        System.out.println(aBoolean);


        Map<String,String> map=new HashMap<>();
        map.put("name","张三");
        map.put("age","18");
        map.put("name","李四");
        ops.multiSet(map);
        System.out.println(stringRedisTemplate.keys("*"));

                        测试结果

        

                                4.2.对hash数据类型的测试

                        

    HashOperations<String,Object,Object> hash = stringRedisTemplate.opsForHash();
        hash.put("k1","name","xyf");
        hash.put("k1","age","18");
        Object o=hash.get("k1","name");
        System.out.println(hash.keys("k1"));
        System.out.println(hash.values("k1"));
        System.out.println(o);
        System.out.println(hash.entries("k1"));

                                测试结果

        

                5 测试----------RedisTemplate

              RedisTemplate的key和value可以存放Object类型,所以它的key和value默认采用的序列化方式为JDK序列化方式。一般我们需要为key和value指定序列化方式。

                1.操作String数据类型的

  @Autowired
    RedisTemplate redisTemplate=new RedisTemplate();
    @Test
    void contextLoads() {
        redisTemplate.setKeySerializer(new StringRedisSerializer());    //指定key值得序列化方式
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());  //指定value的序列化方式
        ValueOperations valueOperations=redisTemplate.opsForValue();

        valueOperations.set("k1",new  User("xyf",22,"郑州"));
        Object k1=valueOperations.get("k1");
        System.out.println(k1);


    }

                结果

        2.操作Hash 数据类型

                

   @Test
    void contextLoadsHash(){
        redisTemplate.setKeySerializer(new StringRedisSerializer());    //对key进行序列化
        redisTemplate.setValueSerializer(new StringRedisSerializer()); //对value值进行序列化
        redisTemplate.setHashKeySerializer(new StringRedisSerializer()); //对hashkey进行序列化
        redisTemplate.setHashValueSerializer(new StringRedisSerializer());    //对hashvalue值进行序列化
        HashOperations hash= redisTemplate.opsForHash();
        hash.put("u","name","xyf");
        hash.put("u","age","18");
        hash.put("u","addr","zz");
        System.out.println(hash);


    }

                结果

        

                

                三 连接集群

                        1.哨兵模式

        在配置文件中配置好

spring.redis.sentinel.master=mymaster     //与linux中队master 的命名一样
spring.redis.sentinel.nodes=192.168.118.3:26379   //哨兵

        配完之后和之前操作没什么区别

                        

                2.集群模式

                在配置文件中配置集群

                        

 spring.redis.cluster.nodes=192.168.118.3:7001,192.168.118.3:8001,192.168.118.3:9001,192.168.118.3:7002,192.168.118.3:8002,192.168.118.3:9002


        配置完之后对数据的操作和之前的一样

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值