Java通过Jedis操作Redis

1 Redis基本数据类型:

	String  字符串
	List  列表
	Hash  散列
	Set  集合
	Sorted Set  有序集合

2 Jedis 介绍

jedis的2种使用方式:
  1. 通过单一连接方式使用,每次创建都会建立TCP连接,可适用于应用场景不太复杂的;

  2. 通过JedisPool连接池使用,连接池初始化后,每次连接从连接池中取,使用完放回,不用每次都新建TCP连接,开销较小,适用于较为复杂的使用场景,需要配置一些连接池参数。

3 项目中使用

3.1 引入依赖

<dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
 </dependency>

3.2 单一连接使用

Jedis jedis = new Jedis(ip,port,timeout);

3.3 JedisPool 连接池


public  class RedisUtil {
    private static Logger logger = Logger.getLogger(RedisUtil.class);
    private static String ADDR = "xx.xx.xx.xx";
    private static int PORT = 6379;
    private static int MAX_TOTAL = 8;
    private static int MIN_IDLE=0;
    private static int MAX_IDLE = 1000;
    private static int MAX_WAIT = -1;
    private static int TIMEOUT = 10000;
    private static boolean BLOCK_WHEN_EXHAUSTED = true;
    private static String EVICTION_POLICY_CLASSNAME="org.apache.commons.pool2.impl.DefaultEvictionPolicy";
    private static boolean JMX_ENABLED=true;
    private static String JMX_NAME_PREFIX="pool";
    private static boolean LIFO=true;
    private static long MIN_EVICTABLE_IDLE_TIME_MILLIS=1800000L;
    private static long SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS=1800000L;
    private static int NUM_TESTS_PER_EVICYION_RUN=3;
    private static boolean TEST_ON_BORROW = false;
    private static boolean TEST_WHILEIDLE=false;
    private static long TIME_BERWEEN_EVICTION_RUNS_MILLIS=-1;
    private static JedisPool jedisPool = null;
    /**
     * 初始化Redis连接池
     */
    static {
        try {
            JedisPoolConfig config = new JedisPoolConfig();
            config.setBlockWhenExhausted(BLOCK_WHEN_EXHAUSTED);
            config.setEvictionPolicyClassName(EVICTION_POLICY_CLASSNAME);
            config.setJmxEnabled(JMX_ENABLED);
            config.setJmxNamePrefix(JMX_NAME_PREFIX);
            config.setLifo(LIFO);
            config.setMaxIdle(MAX_IDLE);
            config.setMaxTotal(MAX_TOTAL);
            config.setMaxWaitMillis(MAX_WAIT);
            config.setMinEvictableIdleTimeMillis(MIN_EVICTABLE_IDLE_TIME_MILLIS);
            config.setMinIdle(MIN_IDLE);
            config.setNumTestsPerEvictionRun(NUM_TESTS_PER_EVICYION_RUN);
            config.setSoftMinEvictableIdleTimeMillis(SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS);
            config.setTestOnBorrow(TEST_ON_BORROW);
            config.setTestWhileIdle(TEST_WHILEIDLE);
            config.setTimeBetweenEvictionRunsMillis(TIME_BERWEEN_EVICTION_RUNS_MILLIS);
            jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT);
        } catch (Exception e) {
            logger.error("Redis连接池 初始化异常" + e);
            e.printStackTrace();
        }
    }
    /**
     * 获取连接
     */
    public static Jedis getJedis() {
        return  jedisPool.getResource();
    }
    /**
     * 释放连接
     */
    public static void closeJedis(Jedis jedis) {
            jedis.close();
    }
}

3.4 常用方法

// String
jedis.set("name","LiMing");   
jedis.get("name");
jedis.del("name");
// List
jedis.lpush("user","LiMing");
jedis.lindex("user",1);
jedis.lset("user",0,"DaBai");
jedis.lrange("user",0,2);
// Hash
jedis.hset("age","LiMing","1");
jedis.hvals("age");
jedis.hexists("age","XiaoHong");
jedis.hgetAll("age");
jedis.hdel("age","LiMing");
jedis.hsetnx("age","ZhangSheng","20");
// Set
jedis.sadd("num","1");
jedis.smembers("num");
jedis.scard("num");
jedis.sismember("num","2");
jedis.srem("num","2");

Sorted Set 使用与Set相近

4 可视化工具推荐

Another Redis Desktop Manager
可自行选择版本下载,这是我目前使用起来相对较为方便的Redis可视化工具
PS:
1 、 在代码开发阶段,可将Redis的配置文件中 bind 127.0.0.1 注释掉,后续可根据实际部署需求决定是否删除该注释。
2、 一般设置仅本机访问时,redis连接可不设置密码,放在外网的Redis服务,若短暂启用远程访问,建议设置个密码,否则容易被攻击,造成内存紧张,redis崩溃。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值