zoukankan      html  css  js  c++  java
  • Idea中使用Redis的Java客户端和Jedis

    Jedis

      导入依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
      </parent>
      <groupId>com.my</groupId>
      <artifactId>redis_jedis01</artifactId>
      <version>1.0-SNAPSHOT</version>
    
      <name>redis_jedis01</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>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
        <dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>2.9.0</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
        </dependency>
    
    
      </dependencies>
    View Code

    创建一个测试类

    package com.my.controller;
    
    import org.junit.Before;
    import org.junit.Test;
    import redis.clients.jedis.Jedis;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    public class jedis01Test {
        private Jedis jedis;
    
        @Before
        public void before() {
            //链接Redis
            jedis = new Jedis("192.168.119.76");
            //设置权限密码
            jedis.auth("redis");
            jedis.ping();
            System.out.println("使用idea!redis连接成功!");
        }
    
        /**
         * jedis操作String类
         */
        @Test
        public void RedisStringTest() {
            //切换数据库
            jedis.select(1);
            //设置一个String类型的key-value
            jedis.set("strKey2", "strValue2");
            /*//如何设置key的有效期
            jedis.expire("strkey1",17);*/
            //获取String数据
            String value = jedis.get("strKey1");
            System.out.println("对应存放的value值为" + value);
            //修改数据
            jedis.set("strKey2", "strValue02");
            //删除数据
            //jedis.del("strKey1");
            //设置多个值
            jedis.mset("strKey1s", "strValue1s", "strKey2s", "strValue2s", "strKey3s", "1");
            //+1操作
            jedis.incr("strKey3s");
            //-1操作
            jedis.decr("strKey3s");
            //拼接
            jedis.append("srtKey3s", "append");
        }
    
        @Test
        public void operationList() {
            //切换数据库
            jedis.select(1);
            //清空集合值
            jedis.del("listkey01", "listkey02");
            //设置List集合值,左侧插入(从下往上排序)
            jedis.lpush("listkey01", "张三", "李四", "王五");
            //设置List集合值,右侧插入(从上往下排序)
            jedis.rpush("listkey02", "北京", "上海", "广州");
            //获取List集合值
            List<String> listkey01 = jedis.lrange("listkey01", 0, -1);
            for (String item : listkey01) {
                System.out.println(item);
            }
            //更改List集合数据
            jedis.lset("listkey01", 0, "赵六");
        }
    
        @Test
        public void operationSortedSet() {
            //切换数据库
            jedis.select(1);
            //设置SortedSet集合
            jedis.zadd("setKey2", 1, "北京");
            jedis.zadd("setKey2", 2, "上海");
            //获取SortedSet
            Set<String> setKey02 = jedis.zrange("setKey2", 0, -1);
            for (String item : setKey02) {
                System.out.println(item);
            }
        }
    
        @Test
        public void operationMap() {
            jedis.select(1);
            //设置Map
            Map<String, String> map = new HashMap<>();
            map.put("name", "张三");
            map.put("age", "18");
            jedis.hmset("mapkey01", map);
            List<String> value = jedis.hmget("mapkey01", "name", "age");
            for (String item : value) {
                System.out.println(item);
            }
            Map<String, String> MepRedis = jedis.hgetAll("mapkey81");
        }
        }
    View Code

    Stringboot集成Jedis

      导入依赖

    <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.9.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
    View Code

    application.properties文件

    spring.redis.database=0
    spring.redis.host=192.168.119.76
    spring.redis.port=6379
    #spring.redis.password=redis

    创建一个类

    package com.my.service;
    
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.concurrent.TimeUnit;
    
    @Service
    public class SpringBootRedis {
        @Resource
        private StringRedisTemplate stringRedisTemplate;
    
    
        public void set(String key ,Object value){
            if(value instanceof String) {
                stringRedisTemplate.opsForValue().set(key, (String) value, 200L, TimeUnit.SECONDS);
            }else if(value instanceof List) {
                List<String> list = (List) value;
                for (String item : list) {
                    stringRedisTemplate.opsForList().leftPush(key, item);
                }
            }else if(value instanceof Set) {
                String[] objects = (String[]) ((Set) value).toArray(new String[((Set) value).size()]);
                stringRedisTemplate.opsForSet().add(key, objects);
            }else if (value instanceof Map){
                stringRedisTemplate.opsForHash().putAll(key,(Map<?, ?>) value);
    
            }
        }
    }
    View Code

    创建controller层

    package com.my.controller;
    
    import com.my.service.SpringBootRedis;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import redis.clients.jedis.Jedis;
    
    import javax.annotation.Resource;
    import java.util.*;
    
    @Controller
    public class RedisController {
        @Resource
        private SpringBootRedis springBootRedis;
        private Jedis jedis;
    
        @RequestMapping("/setString")
        @ResponseBody
        public String setString(){
            springBootRedis.set("strkey","strvalue");
            return "成功";
        }
    
        @RequestMapping("/setList")
        @ResponseBody
        public String setList(){
            List<String> strList=new ArrayList<>();
            strList.add("张三");
            strList.add("李四");
            strList.add("王五");
            springBootRedis.set("listkey",strList);
            return "ListOK";
        }
        @RequestMapping("/setSet")
        @ResponseBody
        public String setSet(){
            Set<String> set=new HashSet<>();
            set.add("北京");
            springBootRedis.set("setkey",set);
            return "SetOk";
        }
        @RequestMapping("/setMap")
        @ResponseBody
        public String setMap(){
            Map map=new HashMap();
            map.put("name","张三");
            map.put("age","18");
            springBootRedis.set("mapkey",map);
            return "MapOK";
        }
    }
    View Code
  • 相关阅读:
    十二月十学习报告
    十二月八学习报告
    十二月七学习报告
    学习笔记187—在线会议共享PPT时,设置让观众看不到备注,而自己能看到【腾讯会议】
    学习笔记186—打印机可以打印测试页,但是通过WPS或Word无法打印文档?
    《程序员的自我修养》读书有感 其一
    Linux下的单向ping通问题
    做一个Pandas专家,教你如何用它高效处理大量数据
    grpc python 源码分析(1):server 的创建和启动
    grpc python 源码分析(2):server 处理请求
  • 原文地址:https://www.cnblogs.com/mayuan01/p/12119817.html
Copyright © 2011-2022 走看看