redis 简单整理——java 客户端jedis[十六]
前言
简单介绍一下java客户端jedis。
正文
Java有很多优秀的Redis客户端(详见:http://redis.io/clients#java),这 里介绍使用较为广泛的客户端Jedis,本节将按照以下几个方面对Jedis进行 介绍:
·Jedis的基本使用
·Jedis连接池使用
·Jedis中Pipeline使用
·Jedis的Lua脚本使用
Jedis属于Java的第三方开发包,在Java中获取第三方开发包通常有两种
方式:
·直接下载目标版本的Jedis-${version}.jar包加入到项目中。
·使用集成构建工具,例如maven、gradle等将Jedis目标版本的配置加入 到项目中。
通常在实际项目中使用第二种方式,但如果只是想测试一下Jedis,第 一种方法也是可以的。在写本书时,Jedis最新发布的稳定版本2.8.2,以 Maven为例子,在项目中加入下面的依赖即可:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.2</version>
</dependency>
然后编写代码:
public static void main(String[] args) {
//1. 生成一个Jedis对象,这个对象负责和指定Redis实例进行通信
Jedis jedis = new Jedis("127.0.0.1", 6379);
// 2. jedis执行set操作
jedis.set("hello", "world");
// 3. jedis执行get操作, value="world"
String value = jedis.get("hello");
System.out.println(value);
}

一般时候如果是网络异常,那么应该try catch 这种模式。
Jedis jedis = null; try {jedis = new Jedis("127.0.0.1", 6379); jedis.get("hello"); } catch (Exception e) { logger.error(e.getMessage(),e); } finally { if (jedis != null) { jedis.close(); } }
有些客户端自带了系列化工具,有些客户端没有,jedic就没有,那么需要自我找个库进行解读。
使用protostuff:

可以自我实现一下反序列化,自己百度官网。
上面我们看到一个问题就是redis 使用后,然后马上关闭了,如果redis是高频操作的话,那么是很危险的。
因此生产环境中一般使用连接池的方式对Jedis连接进行管理,所有Jedis对象预先放在池子中(JedisPool),每次要连接Redis,只 需要在池子中借,用完了在归还给池子.

另外直连的方式无法限制Jedis 对象的个数,在极端情况下可能会造成连接泄露,而连接池的形式可以有效 的保护和控制资源的使用。

Jedis提供了JedisPool这个类作为对Jedis的连接池,同时使用了Apache的 通用对象池工具common-pool作为资源的管理工具,下面是使用JedisPool操 作Redis的代码示例:

pipline 例子:

其他的如Lua脚本可以jedis搜索一下官网。
结
下一节客户端管理。
redis 简单整理——java 客户端jedis[十六]的更多相关文章
- Redis安装以及Java客户端jedis连接不上相关问题解决
安装步骤 1.由于Redis是由C 语言编写的 所以虚拟机编译需要C的编译环境 用命令 yum install gcc-c++ 2.用SFTP上传Redis安装包并解压 3.进入Redis源码目录 b ...
- 【转载】Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
转载地址:http://blog.csdn.net/truong/article/details/46711045 关键字:Redis的Java客户端Jedis的八种调用方式(事务.管道.分布式…)介 ...
- Redis(九):Redis的Java客户端Jedis
Redis的Java客户端Jedis导航目录: 安装JDK 安装Eclipse Jedis所需要的Jar包 Jedis常用操作 JedisPool 安装JDK tar -zxvf jdk-7u67-l ...
- 9.Redis的Java客户端Jedis
Redis的Java客户端Jedis Jedis所需jar包 commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...
- Redis入门和Java利用jedis操作redis
Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...
- Java进阶(三十六)深入理解Java的接口和抽象类
Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太 ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第十六周
java学习第十六周-并发 本周,学习了Java中线程,并发的知识,在老师的带领下,进行了对知识的理解学习,以及对实验的运行讲解,对这一块内容掌握的还可以,在自主编程中,也能够完成.线, ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第十六周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第十六周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...
- “全栈2019”Java多线程第二十六章:同步方法生产者与消费者线程
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java多线程第十六章:同步synchronized关键字详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
随机推荐
- SQL之 逻辑库,数据表
SQL语言三大类 创建逻辑库 创建数据表 例子 数据表其他操作 ps:desc仅仅查看表的结构,不能查看内容 添加字段 ps: 修改字段类型和约束 修改字段名称 删除字段
- Codeforces Round 260 (Div. 1)A. Boredom(dp)
最开始写了一发贪心wa了,然后这种选和不选的组合优化问题,一般是考虑动态规划 \(dp[i][0]:\)表示第i个数不选的最大值 \(dp[i][1]:\)表示第i个数选的最大值 考虑转移: \(dp ...
- 学习笔记:勒让德(Legendre)符号
授课老师:ybx.chh. 授课时间:2024/3/8. 授课内容纲要:勒让德符号及其性质(欧拉准则,高斯引理,二次互反律). 勒让德符号概括 好像在 OI 和 MO 当中都挺有用的. 勒让德符号的定 ...
- Java实现书城项目(增删)
书城项目 登录 dao 接口:UserDao Users login(String username,String password); 实现:UserDaoImpl QueryRunner quer ...
- Prometheus组件构成及介绍
Prometheus是一个开源的监控和告警工具包,其常用的组件主要包括以下几个部分: Prometheus Server 功能:Prometheus Server是Prometheus的核心组件,负责 ...
- vim的使用进步
vim的使用进步 1.如果遇到命令行中无法退出的 狂按esc按键 或者也可以使用v模式下切换一下,之后按esc 保存退出 保存退出--:wq 保存:w 不保存退出:q! i--插入模式 v- 可视化模 ...
- Linux快速入门(六)Linux网络管理
ping ping命令用于测试两台主机之间是否可以通信,一般情况下会使用ping www.baidu.com来测试网络连通性,如果不指定发送包的个数默认是一直发送数据包,可以使用Ctrl+C停止.网络 ...
- 说说Vue 3.0中Treeshaking特性?举例说明一下?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.是什么 Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术,专业术语叫 Dead code eliminat ...
- Python 汇总列数据到行
Python汇总Excel列数据到行(方法一) import pandas as pd # 读取Excel文件 df = pd.read_excel('C:\\Users\\liuchunlin2\\ ...
- BABYRE 【攻防世界】 Reverse
题目 丢进Exeinfo PE里面,得到64bit,无壳 丢进IDA pro(x64)里面,找到主函数 代码中有一个花指令:*(unsigned int (__fastcall **)(char *) ...