• Jedis(三)——Hash/List/Set


    照着文档,找对应的函数就好了,封装得很完整,使用真不是什么难事。

    至于二次封装的话,去实现Spring的Cache接口是一种方式,但是,不能把注解设计得太复杂。数据类型一共有五种,每一种都有各自的特性,注解不可能面面俱到,不爱用的话设计就失败了,因此,需要牺牲一部分Jedis的功能。

    个人推荐混合静态类一起使用,方便后期函数扩展,最大程度保证原有的功能。

    Hash

    package cn.swsk.xbry.api.v1.md1001;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author css
     * @date 2019/9/24 22:20
     */
    public class Test {
       public static void main(String[] args) throws InterruptedException {
          JedisPoolConfig config = new JedisPoolConfig();
          config.setMaxTotal(25);
          config.setMaxIdle(20);
          config.setMinIdle(5);
          try (
             JedisPool pool = new JedisPool(config, "127.0.0.1", 6379);
             Jedis jedis = pool.getResource()) {
             jedis.select(0);
             //type of hash
    
             //1、分别给哈希表key中的域设置值,分别对key中的字段1、字段2设置值
             jedis.hset("testHash" , "field1" , "value1");
             jedis.hset("testHash" , "field2" , "value1");
             //2、用一个JAVA中的HashMap直接存储为redis中的哈希表
             Map<String, String> map = new HashMap<>();
             map.put("field11" , "value11");
             map.put("field12" , "value11");
             jedis.hmset("testHash2" , map);
    
             System.out.println(jedis.keys("*"));
             System.out.println(jedis.hkeys("testHash"));
    
             System.out.println(jedis.hgetAll("testHash"));
             System.out.println(jedis.hgetAll("testHash2"));
          }
       }
    }

    List

    package cn.swsk.xbry.api.v1.md1001;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * @author css
     * @date 2019/9/24 22:20
     */
    public class Test {
       public static void main(String[] args) throws InterruptedException {
          JedisPoolConfig config = new JedisPoolConfig();
          config.setMaxTotal(25);
          config.setMaxIdle(20);
          config.setMinIdle(5);
          try (
             JedisPool pool = new JedisPool(config, "127.0.0.1", 6379);
             Jedis jedis = pool.getResource()) {
             jedis.select(0);
             //type of list
    
             String key1 = "key1";
             //将值value插入到列表key的表头。
             jedis.lpush(key1, "what", "how", "1", "0哈哈哈哈");
    
             //取出
             System.out.println(jedis.lpop(key1));
             System.out.println(jedis.lpop(key1));
             System.out.println(jedis.lpop(key1));
    
             //返回列表key中指定区间内的元素,区间以偏移量start和stop指定. 下标(index)参数start和stop从0开始; 
          //负数下标代表从后开始(-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推)  返回一个List
             System.out.println(jedis.lrange(key1, 0, jedis.llen(key1) - 1));
             System.out.println(jedis.lrange(key1, 0, jedis.llen(key1) - 1));
          }
       }
    }

    Set

    package cn.swsk.xbry.api.v1.md1001;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    /**
     * @author css
     * @date 2019/9/24 22:20
     */
    public class Test {
       public static void main(String[] args) throws InterruptedException {
          JedisPoolConfig config = new JedisPoolConfig();
          config.setMaxTotal(25);
          config.setMaxIdle(20);
          config.setMinIdle(5);
          try (
             JedisPool pool = new JedisPool(config, "127.0.0.1", 6379);
             Jedis jedis = pool.getResource()) {
             jedis.select(0);
             //type of set
    
             String key1 = "key3", key2 = "key2";
             //将member元素加入到集合key当中。
             jedis.sadd(key1, "I", "want", "to", "do", "something", "it", "with", "my", "friend");
    
             //返回集合key的元素的数量
             System.out.println(jedis.scard(key1));
    
             //移除集合中的多个member元素。
             jedis.srem(key1, "it");
             System.out.println(jedis.scard(key1));
    
             //判断元素是否是集合key的成员
             System.out.println(jedis.sismember(key1, "it"));
    
             //返回集合key中的所有成员。返回一个set
             System.out.println(jedis.smembers(key1));
    
             //交集
             System.out.println(jedis.sinter(key1, key2));
             //并集
             System.out.println(jedis.sunion(key1, key2));
             //差集
             System.out.println(jedis.sdiff(key1, key2));
          }
       }
    }

    转载于:https://www.cnblogs.com/chenss15060100790/p/11604439.html

  • 相关阅读:
    TP5 try{}catch{}异常捕获不到 解决办法
    layui2.5 开关在confirm确认了之后在关/开
    JQuery 表单textarea控制字数
    Navicat Premium从远程Mysql数据库复制到本地数据库的方法
    dedecmsV5.7 任意文件上传漏洞修复
    PHP 利用PHPExcel到处数据到Excel;还有导出数据乱码的解决方案。
    Mac Pro 2017款自带php与用brew重装PHP后的地址
    用js传递当前页面的url,丢失了&后面的参数 解决办法
    PHP 超全局变量之$_SERVER
    Linux while和for循环简单分析
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/12973294.html
Copyright © 2020-2023  润新知