• Redis的Java客户端Jedis


    Jedis

      导入依赖

      <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
      <dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>2.9.0</version>
      </dependency>

      创建一个测试类 名称为TestJedis

    package com.wn.jedis01.jedis;
    
    import org.junit.Before;
    import org.junit.Test;
    import redis.clients.jedis.Jedis;
    
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    public class TestJedis {
    
        private Jedis jedis;
    
        @Before
        public void before(){
            //连接服务器
            jedis=new Jedis("192.168.138.76",6379);
            //权限认证
            //jedis.auth("wang2003");
            System.out.println(jedis.ping());
        }
    
        //String类型(字符串)
        @Test
        public void TestString(){
            //添加数据
            //jedis.set("k1","v1");
    
            //查询数据
            //String k1 = jedis.get("k1");
            //System.out.println(k1);
    
            //返回所储存的字符串的长度
            //Long k1 = jedis.strlen("k1");
            //System.out.println(k1);
    
            //key中储存的数据值加1
            //jedis.set("1","2");
            //Long incr = jedis.incr("1");
            //System.out.println(incr);
    
            //key中储存的数据值减1
            //Long decr = jedis.decr("1");
            //System.out.println(decr);
        }
    
        //List类型(列表)
        @Test
        public void TestList(){
            //将一个或多个值插入到列表的头部   从左侧开始
            //jedis.lpush("List01","张三","李四","王五");
    
            //在列表中添加一个或多个值  从右侧开始
            //jedis.rpush("List02","北京","上海","广州");
    
            //查看一个或多个值
            List<String> list01 = jedis.lrange("List01", 0, -1);
            for (String tring:list01){
                System.out.println(tring);
            }
    
            //获取列表的长度
            Long list011 = jedis.llen("List01");
            System.out.println(list011);
    
            //通过索引设置列表元素的值
            jedis.lset("List01",0,"赵六");
        }
    
        //set类型(无序集合)
        @Test
        public void TestSet(){
            //向集合中添加一个或多个成员
            //jedis.sadd("Set01","456","789");
    
            //返回集合中的所有成员
            Set<String> set01 = jedis.smembers("Set01");
            for (String string:set01){
                System.out.println(string);
            }
    
            //获取集合中的数量
            Long set011 = jedis.scard("Set01");
            System.out.println(set011);
    
            //删除集合中指定的value元素
            //jedis.srem("Set01","789");
        }
    
    
        //hash类型(哈希)
        @Test
        public void TestHash(){
            //将哈希key中的字段fileld的值设为value 添加
            //jedis.hset("Hash01","h1","北京");
            //jedis.hset("Hash01","h2","上海");
    
            //获取储存哈希表中指定字段的值
            //String hget = jedis.hget("Hash01", "h1");
            //System.out.println(hget);
    
            //查询多个值
            //List<String> hmget = jedis.hmget("Hash01", "h1", "h2");
            //System.out.println(hmget);
    
            //获取key中对应的值
            //Map<String, String> hash01 = jedis.hgetAll("Hash01");
            //System.out.println(hash01);
    
            //删除一个或多个哈希表中指定字段
            jedis.hdel("Hash01","h2");
    
            //获取表中的字段
            Set<String> hash01 = jedis.hkeys("Hash01");
            System.out.println(hash01);
    
            //获取表中所有值
            List<String> hash011 = jedis.hvals("Hash01");
            System.out.println(hash011);
        }
    
        //Zset类型(有序集合)
        @Test
        public void TestZset(){
            //添加一个或多个成员
            //jedis.zadd("Zset01",1,"123");
    
            //通过索引区间返回有序集合成指定区间的成员
            Set<String> zset01 = jedis.zrange("Zset01", 0, -1);
            System.out.println(zset01);
    
            //获取有序集合中的成员数
            Long zset011 = jedis.zcard("Zset01");
            System.out.println(zset011);
    
        }
    
    }

    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>

      application.properties文件

    spring.redis.database=0
    spring.redis.host=192.168.138.76
    spring.redis.port=6379
    #spring.redis.password=123456

      创建一个类 名称为TestRedis

    package com.wn.jedis01.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;
    
    @Service
    public class TestRedis {
    
        @Resource
        private StringRedisTemplate stringRedisTemplate;
    
        public void set(String key,Object value){
            if (value instanceof String){  //判断是否是String类型
                stringRedisTemplate.opsForValue().set(key,(String)value);
            }else if(value instanceof List){  //判断是否是List类型
                List<String> list=(List)value;
                for (String item:list){
                    stringRedisTemplate.opsForList().leftPush(key,item);
                }
            }else if (value instanceof Set){    //潘富案是否是Set类型
                String[] objects = (String[]) ((Set) value).toArray(new String[((Set) value).size()]);
                stringRedisTemplate.opsForSet().add(key,objects);   
            }else if(value instanceof Map){    //判断是否是Map类型
                stringRedisTemplate.opsForHash().putAll(key,(Map<?, ?>) value);
            }
    
        }
    
    }

      创建controller层

    package com.wn.jedis01.controller;
    
    import com.wn.jedis01.service.TestRedis;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import javax.annotation.Resource;
    import java.util.*;
    
    @Controller
    public class RedisController {
    
        @Resource
        private TestRedis testRedis;
    
        @RequestMapping("/String")
        @ResponseBody
        public String TestString(){
            testRedis.set("k1","v1");
            return "success";
        }
    
        @RequestMapping("/List")
        @ResponseBody
        public String TestList(){
            List<String> list=new ArrayList<>();
            list.add("张三");
            list.add("李四");
            testRedis.set("List01",list);
            return "success";
        }
    
        @RequestMapping("/Set")
        @ResponseBody
        public String TestSet(){
            Set<String> set=new HashSet<>();
            set.add("123");
            set.add("456");
            testRedis.set("Set01",set);
            return "success";
        }
    
        @RequestMapping("/Map")
        @ResponseBody
        public String TestMap(){
            Map map=new HashMap();
            map.put("name","张三");
            map.put("age","18");
            testRedis.set("Map01",map);
            return "success";
        }
    
    }
  • 相关阅读:
    Java并发编程实战3-可见性与volatile关键字
    Java并发编程实战2-线程安全
    Java词频统计
    Java中split的对象被特殊字符(.或|)分隔
    Kernel Space与User Space(转)
    [Python]Pandas简单入门(转)
    Python的自省机制
    谈谈Python中元类Metaclass(二):ORM实践
    Python的垃圾回收机制
    [Python]Pip换源以及设置代理
  • 原文地址:https://www.cnblogs.com/wnwn/p/12119532.html
Copyright © 2020-2023  润新知