jedis的连接池

1、需要先打开虚拟机,并开启Linux系统的端口号:6379:

其中,第一行代码为修改字符编码格式,解决SSH中文乱码问题。

2、开启redis:

3、利用连接池实现数据的存取:

(1)代码实现:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisDemo {
    public void test(){
        //对连接池进行配置
        JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(30);//最大闲置个数
        jedisPoolConfig.setMinIdle(10);//最小闲置个数
        jedisPoolConfig.setMaxTotal(50);//最大连接数
        //创建一个redis连接池
        JedisPool jedisPool=new JedisPool(jedisPoolConfig,"192.168.204.128",6379);
        //从连接池中获取redis的连接资源
        Jedis jedis=jedisPool.getResource();
        //对数据库进行存取操作
        jedis.set("河南","郑州");
        System.out.println(jedis.get("河南"));
        //释放资源
        jedis.close();
        jedisPool.close();
    }
    public static void main(String[]args){
        JedisDemo jedisDemo=new JedisDemo();
        jedisDemo.test();
    }
}

(2)运行结果:

4、连接池工具类:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisDemo {
    private static JedisPool jedisPool= null;
        static{
            //对连接池进行配置
            JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(30);//最大闲置个数
            jedisPoolConfig.setMinIdle(10);//最小闲置个数
            jedisPoolConfig.setMaxTotal(50);//最大连接数
            //创建一个redis连接池
            jedisPool=new JedisPool(jedisPoolConfig,"192.168.204.128",6379);
        }
        public static Jedis getJedis(){//从连接池中获取redis的连接资源
            return jedisPool.getResource();
        }
    public static void main(String[] args){
        Jedis jedis=getJedis();
        String add=jedis.get("河南");
        System.out.println(add);
    }
}

5、添加配置文件的工具类:

(1)配置文件:

redis.maxIdle=30
redis.minIdle=10
redis.maxTotal=50
redis.url=192.168.204.128
redis.port=6379

(2)工具类:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class JedisDemo {
    private static JedisPool jedisPool= null;
        static{
            //读取配置文件
            InputStream inputStream=JedisDemo.class.getClassLoader().getResourceAsStream("redis.properties");
            Properties properties=new Properties();
            try {
                properties.load(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }

            //对连接池进行配置
            JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.get("redis.maxIdle").toString()));//最大闲置个数
            jedisPoolConfig.setMinIdle(Integer.parseInt(properties.get("redis.minIdle").toString()));//最小闲置个数
            jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.get("redis.maxTotal").toString()));//最大连接数
            //创建一个redis连接池
            jedisPool=new JedisPool(jedisPoolConfig,properties.getProperty("redis.url"),Integer.parseInt(properties.get("redis.port").toString()));
        }
        public static Jedis getJedis(){//从连接池中获取redis的连接资源
            return jedisPool.getResource();
        }
    public static void main(String[] args){
        Jedis jedis=getJedis();
        String add=jedis.get("河南");
        System.out.println(add);
    }
}

读取配置文件中的信息,在有关的参数改变时,只需要改变配置文件即可。

原文地址:https://www.cnblogs.com/zhai1997/p/11725993.html

时间: 2024-10-14 03:21:04

jedis的连接池的相关文章

redis java客户端Jedis 实现 连接池 + 简单的负载均衡

1.下载 redis_win_2.6.13.zip 安装包 下载地址:大家去百度吧 2.redis_win_2.6.13.zip 安装包解压缩后,进入redis-server.exe所在目录 在此目录中,新建一个配置文件:redis01.conf[此处文件名字,并不固定],文件内容如下: #是否以后台进程运行 daemonize yes   #指定后台进程的pid文件写入位置 pidfile /var/run/redis.pid   #监听端口,默认为6379 port 6379   #只接受以

jedis连接池详解(Redis)

原子性(atomicity): 一个事务是一个不可分割的最小工作单位,事务中包括的诸操作要么都做,要么都不做. Redis所有单个命令的执行都是原子性的,这与它的单线程机制有关: Redis命令的原子性使得我们不用考虑并发问题,可以方便的利用原子性自增操作INCR实现简单计数器功能; 单机模式: package com.ljq.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import

java中使用jedis操作redis(连接池方式)

1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.Map; 7 8 import org.junit.Before; 9 import org.junit.Test; 10 11 import redis.clients.jedis.Jedis; 12 13 public class TestRedis

Jedis分片Sentinel连接池实验

Jedis分片Sentinel连接池实验 1.起因 众所周知,Redis官方HA工具Sentinel已经问世很久了,但令人费解的是,Jedis官方却迟迟没有更新它的连接池.到目前Maven库中最新的2.7.3版本为止,都只能要么使用分片连接池,要么使用不分片的Sentinel连接池.如果既进行了Sharding,又对每组的主从实例配置Sentinel进行监控,怎么办?答案是只能自己开发了,晕!还好万能的GitHub上已经有人提供了一个简单可用的分片Sentinel连接池实现,于是就直接拿来用用.

Jedis连接池的使用

所需jar:jedis-2.1.0.jar和commons-pool-1.5.4.jar Jedis操作步骤如下: 1->获取Jedis实例需要从JedisPool中获取: 2->用完Jedis实例需要返还给JedisPool: 3->如果Jedis在使用过程中出错,则也需要还给JedisPool: 代码如下: package com.ljq.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis

Jedis连接池的使用(转)

http://www.cnblogs.com/linjiqin/archive/2013/06/14/3135248.html 所需jar:jedis-2.1.0.jar和commons-pool-1.5.4.jar Jedis操作步骤如下:1->获取Jedis实例需要从JedisPool中获取:2->用完Jedis实例需要返还给JedisPool:3->如果Jedis在使用过程中出错,则也需要还给JedisPool: [java] view plaincopy package com.

jedis连接池爆满导致的服务不可用

生产环境was线程数300,jedis连接池连接数100. 在业务高峰期,查看日志发现大量could not get a resource from a pool的异常,抓取javacore文件发现was线程大量进入parked状态,查看jedis源码发现连接池底层使用common-pool实现,而common-pool其中有这样一段代码: if (p == null) { if (borrowMaxWaitMillis < 0) { p = idleObjects.takeFirst(); }

Java Redis 连接池 Jedis 工具类

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.io.IOException; import java.io.InputStream; import java.util.Prop

Java与redis交互、Jedis连接池JedisPool

Java与redis交互比较常用的是Jedis. 先导入jar包: commons-pool2-2.3.jar jedis-2.7.0.jar 基本使用: public class RedisTest1 { public static void main(String[] args) { Jedis jedis = new Jedis("localhost",6379); jedis.set("username","chichung"); jed