ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

分析Jedis源码实现操作非关系型数据库Redis

2020-02-21 23:05:01  阅读:256  来源: 互联网

标签:return String Redis param 源码 Jedis key jedis public


如果测试项目用的maven依赖,先把maven坐标准备好
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>



import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;

import java.util.Map;
import java.util.Set;

/**
 * Jedis工具类
 */
public class JedisUtil {
    private String ip ="127.0.0.1";
    private int port = 8001;
    public JedisUtil(){

    }
    public JedisUtil(String ip,int port){
        this.ip = ip;
        this.port = port;
    }

    /**
     * 获得redis对象
     * @return 获得redis对象
     */
    public Jedis createJedis(){
        Jedis jedis = new Jedis(ip,port);
        return jedis;
    }

    /**
     * 获得redis对象
     * @param ip 连接redis的IP地址
     * @param port 连接redis的端口号
     * @return 获得redis对象
     */
    public Jedis createJedis(String ip,int port){
        Jedis jedis = new Jedis(ip,port);
        return jedis;
    }

    /**
     * 保存字符串
     * @param key
     * @param val
     */
    public void setString(String key,String val){
        createJedis().set(key,val);
    }

    /**
     * 保存二进制
     * @param key
     * @param val
     */
    public void setByte(byte [] key,byte [] val){
        createJedis().set(key, val);
    }


    /**
     * 根据key获得字符串
     * @param key
     * @return
     */
    public String getString(String key){
        return createJedis().get(key);
    }

    /**
     * 获取二进制
     * @param key
     * @return
     */
    public byte [] getByte(byte [] key){
        return createJedis().get(key);
    }


    /**
     * 根据key删除
     * @param key
     */
    public void del(String key){
        createJedis().del(key);
    }

    /**
     * 保存整数
     * @param key
     * @param val
     */
    public void setInt(String key,String val){

    }

    /**
     * 设置过期时间
     * @param key 键
     * @param val 值
     * @param time 过期时间
     */
    public void setexBasic(String key,String val,int time){
        createJedis().setex(key,time,val);
    }

    /**
     * 对二进制key-val设置过期时间
     * @param key
     * @param time
     * @param val
     */
    public void setexCyte(byte [] key,int time,byte [] val){
        createJedis().setex(key,time,val);
    }

    /**
     *设置哈希值
     * @param key
     * @param map
     */
    public void setHash(String key, Map<String,String> map){
        createJedis().hmset(key, map);
    }

    /**
     * 获取哈希值
     * @param key
     * @param field
     * @return
     */
    public String getHash(String key,String field){
        return createJedis().hget(key,field);
    }

    /**
     * 向队列中放数据
     * @param key
     * @param tag 0 左边,1右边
     * @param strings
     */
    public void setQueue(String key,int tag,String...strings){
        if (tag == 0){
            // 左边放
            createJedis().lpush(key,strings);
        }else if (tag == 1){
            // 右边放
            createJedis().rpush(key, strings);
        }
    }

    /**
     * 向队列中获取数据
     * @param key
     * @param tag 0 左边取,1右边取
     * return
     */
    public String getQueue(String key,int tag){
        if (tag == 0){
            // 左边取
            return createJedis().lpop(key);
        }else if (tag == 1){
            // 右边取
            return createJedis().rpop(key);
        }
        return null;
    }

    /**
     * 添加集合
     * @param key
     * @param strings
     */
    public void sadd(String key,String...strings){
        Jedis jedis = createJedis();
        jedis.sadd(key, strings);
        jedis.close();
    }

    /**
     * 获取差集
     * @param strings
     * @return
     */
    public Set<String> sdiff(String...strings){
        Jedis jedis = createJedis();
        Set<String> set = jedis.sdiff(strings);
        jedis.close();
        return set;
    }


    /**
     * 获取交集
     * @param strings
     * @return
     */
    public Set<String> sinter(String...strings){
        Jedis jedis = createJedis();
        Set<String> set = jedis.sinter(strings);
        jedis.close();
        return set;
    }

    /**
     * 添加有序集合
     * @param key
     * @param map
     */
    public void zadd(String key,Map<String,Double> map){
        Jedis jedis = createJedis();
        jedis.zadd(key, map);
        jedis.close();
    }

    /**
     * 给元素增量
     * @param key
     * @param score
     * @param member
     * @return 增量后的数
     */
    public Double zincreby(String key,double score,String member){
        Jedis jedis = createJedis();
        Double d =  jedis.zincrby(key, score, member);
        return d;
    }

    /**
     * 返回升序排列的集合
     * @param key
     * @return
     */
    public Set<String> zrange(String key){
        Jedis jedis = createJedis();
        Set<String> set = jedis.zrange(key,0,-1);
        return  set;
    }


    /**
     * 返回降序排列的集合
     * @param key
     * @return
     */
    public Set<String> zrevrange(String key){
        Jedis jedis = createJedis();
        Set<String> set = jedis.zrevrange(key,0,-1);
        return set;
    }

    /**
     * 返回降序排序的集合,带上分数
     * @param key
     * @return
     */
    public Set<Tuple> zrevrangeWithScores(String key){
        Jedis jedis = createJedis();
        Set<Tuple> set = jedis.zrevrangeWithScores(key,0,-1);
        return set;
    }

}

 

标签:return,String,Redis,param,源码,Jedis,key,jedis,public
来源: https://www.cnblogs.com/givre-foudre/p/12343575.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有