博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis 学习(8)-- redis 客户端 -- Jedis
阅读量:4573 次
发布时间:2019-06-08

本文共 2215 字,大约阅读时间需要 7 分钟。

redis 客户端 -- Jedis

1. Jedis 直连

本质是 TCP 连接。

执行流程

  1. 创建Jedis对象
  2. 通过Jedis执行命令
  3. 返回Jedis执行结果
  4. 关闭Jedis连接

1240

demo

要使用 Jedis,首先我们需要安装 maven 依赖。

redis.clients
jedis
2.9.0

创建一个简单的 Jedis 直连的小例子:

import redis.clients.jedis.Jedis;public class TestJedis {    public static void main(String[] args) {        // 1.生成一个 Jedis 对象,这个对象负责和指定 Redis 节点进行通信        Jedis jedis = new Jedis("localhost", 6381);        // 2. jedis 执行 set 操作        jedis.set("hello", "world");        // 3. jedis 执行 get 操作,value=“world”        String value = jedis.get("hello");        System.out.println(value);    }}

输出结果如下:

1240

创建 Jedis 的方式

/** *  @param host Redis节点所在机器的IP或域名 *  @param port Redis服务的端口号 *  @param connectionTimeout 客户端连接超时时间(毫秒) *  @param soTimeout 客户端读写超时时间(毫秒) */public Jedis(String host , int port , int connectionTimeout , int soTimeout)

更多操作可以参考


2. Jedis 连接池

执行流程

  1. 创建一个JedisPool对象
  2. 从资源池中获取一个Jedis对象
  3. 通过Jedis执行命令
  4. 返回Jedis执行结果
  5. 关闭Jedis连接,将Jedis还给资源池

1240

创建 Jedis 连接池的方式

JedisPoolConfig config = new JedisPoolConfig();JedisPool jedisPool = new JedisPool(config , "127.0.0.1" , 6379);Jedis jedis = jedisPool.getResource();jedis.close();

demo

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class TestJedis {    public static void main(String[] args) {        //初始化 Jedis 连接池,通常来说 jedisPool 是单例的。        GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();        JedisPool jedisPool = new JedisPool(poolConfig, "127.0.0.1", 6381);        Jedis jedis = null;        try {            // 1. 从连接池获取 Jedis 对象            jedis = jedisPool.getResource();            // 2. 执行操作            jedis.set("hello", "world");        } catch (Exception e) {            e.printStackTrace();        } finally {            if (jedis != null) {                // 如果使用 JedisPool,close 操作不是关闭连接,代表归还连接池                jedis.close();            }        }    }}

3. Jedis 直连 VS Jedis 连接池

优点 缺点
Jedis直连 使用简单
适用于少量长期连接的场景
存在每次新建/关闭TCP连接的开销
资源无法控制,存在连接泄露的风险
Jedis对象线程不安全
Jedis连接池 Jedis对象预先生成,降低使用开销
连接池的形式保护和控制资源的使用
相对于直连,使用相对麻烦
尤其在资源的管理上需要许多参数保证
一旦参数不合理会出现很多问题

转载于:https://www.cnblogs.com/weixuqin/p/10945116.html

你可能感兴趣的文章
Golang关键字—— if/else
查看>>
数据清洗
查看>>
PHP&MySQL(三)——数组
查看>>
各种语法解释及用法
查看>>
UVA 1388 Graveyard
查看>>
Eclipse使用技巧
查看>>
网络请求之get与post异步请求
查看>>
堆和栈的区别
查看>>
清理内存
查看>>
蓝桥杯之装箱问题
查看>>
Spark常用算子详解
查看>>
JAVA_桥接模式
查看>>
Android(java)学习笔记76:Handler用法总结 和 秒表案例
查看>>
C#畅谈“网络电视”
查看>>
解决Maximum execution time of 120 seconds exceeded
查看>>
20172328《程序设计与数据结构》第四周学习总结
查看>>
react-native ListView 性能问题
查看>>
Leetcode 332, Coin Change
查看>>
Hadoop大数据平台构建
查看>>
JVM原理相关
查看>>