上篇中已经安装好redis,然后下面就说怎么在java web中用客户端来使用regis

使用jedis java客户端

一:一个简单的示例代码:

public  static  void main(String[] args) {

Jedis jedis = new Jedis( "147.151.240.234" , 6379 );

jedis.set("foo" , "bar" );

String value = jedis.get("foo" );

System.out.println(value);

}

二:spring中配置:

首先,在项目中引入jeids的jar包。

Xml代码   

redis.clients  groupId >

jedis  artifactId >

2.0.0  version >

dependency >

其次,在spring配置文件中添加配置(也可以直接new出这些对象,一样的)

Xml代码  

最后,调用的时候

Java代码   

ShardedJedis jedis =  shardedJedisPool.getResource();

jedis.get(key); //从redis服务器获取值

jedis.set(key, value); //将值保存到redis服务器

jedis pool的问题

在使用jedis pool时遇到了这个问题:It seems like server has closed the connection

原因分析:

1.redis server 关闭了此客户端的连接:server端设置了maxidletime(默认是5分钟),服务端会不断循环检测clinet的最后一次通信时间(lastinteraction),如果大于maxidletime,则关闭连接,并回收相关资源。client在向该连接中写数据后就会由于server端已经关闭而出现 broken pipe的问题。

2.pool的设置错误:

Xml代码  

;!-- jedis shard信息配置 -->

factory-method="getResource" />

上面的这种配法在spring初始化时获取一次实例化jedisCommands,而后每次的redis的调用时并未从pool中获取

解决方案:

设置

Xml代码  

最近初次尝试使用redis,java客户端采用的jedis,写了几个简单的类满足基本的服务器配置,以及客户端对象的使用等。

客户端对象的创建

package jediscache.common;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

import redis.clients.jedis.Protocol;

public  class JedisFactory {

private JedisPoolConfig jedisPoolConfig;

private JedisPool jedisPool;

public JedisFactory(JedisPoolConfig jedisPoolConfig) {

super ();

this .jedisPoolConfig = jedisPoolConfig;

}

public Jedis getJedisInstance(String host) {

return getJedisPool(host, Protocol.DEFAULT_PORT).getResource();

}

public Jedis getJedisInstance(String host, int port) {

return getJedisPool(host, port).getResource();

}

public JedisPool getJedisPool(String host) {

return getJedisPool(host, Protocol.DEFAULT_PORT);

}

public JedisPool getJedisPool(String host, int port) {

if (jedisPool == null ) {

jedisPool = new JedisPool(jedisPoolConfig, host, port);

}

return jedisPool;

}

/**

* 配合使用getJedisInstance方法后将jedis对象释放回连接池中

*

* @param jedis 使用完毕的Jedis对象

* @return true 释放成功;否则返回false

*/

public  boolean release(Jedis jedis) {

if (jedisPool != null && jedis != null ) {

jedisPool.returnResource(jedis);

return  true ;

}

return  false ;

}

}

使用客户端对象

public  void testLpush() {

JedisFactory factory = new JedisFactory( new JedisPoolConfig());

Jedis jedis = factory.getJedisInstance("localhost" );

try {

String word = "word" ;

jedis.lpush(word, "first" );

jedis.lpush(word, "second" );

jedis.lpush(word, "three" );

System.out.println("word : " + jedis.lrange(word, 0 , - 1 ));

} finally {

factory.release(jedis);

}

}

java web redis_java web redis使用(二)相关推荐

  1. java web redis_java web网页版redis客户端工具

    [写在前面]:基于网上程序改编,如果存在bug,请自行修改!不喜勿喷! 开发工具:eclipse 开发环境:jdk 1.6 访问URL:http://localhost:8080/redis-admi ...

  2. java 操作 redis_java操作Redis

    10. java操作Redis 10.1 环境准备 1. 引入依赖 redis.clients jedis 2.9.0 2.创建jedis对象 package org.example; import ...

  3. Java web与web gis学习笔记(二)——百度地图API调用

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  4. java下拉菜单_薪资对比:Java开发和web前端薪资哪个好

    Web前端开发和Java开发哪个薪资更高,Web前端开发和Java开发发展前景更好? 互联网行业飞速发展,因此有很多小伙伴想要进入IT行业分一杯羹,但是学什么技术更好,哪一个语言的就业薪资更高,就成了 ...

  5. Kali Linux Web 渗透测试— 第十二课-websploit

    Kali Linux Web 渗透测试- 第十二课-websploit 文/玄魂 目录 Kali Linux Web 渗透测试- 第十二课-websploit..................... ...

  6. 小白学Java Web 3 Web前端之CSS基本知识2

    这一篇接着上一篇的内容来分享,上一篇还有大量的样式属性没有列出,不过在继续分享之前,我想先来分享一下关于网页的布局相关的一些东西,因为下一篇我打算分 享用仅仅前面三小篇的内容来制作一个简单的静态网页, ...

  7. java计算机毕业设计Web产品管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计Web产品管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计Web产品管理系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构 ...

  8. java计算机毕业设计web智慧医疗平台设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计web智慧医疗平台设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计web智慧医疗平台设计与实现MyBatis+系统+LW文档+源码+调试部署 本源 ...

  9. Web基础配置篇(二): Maven配置及使用

    Web基础配置篇(二): Maven配置及使用 一.概述 Maven是一个软件开发管理工具,主要管理工作是:依赖管理,项目一键构建. 以前用过ant,很不方便,maven比较简单易用. 然后后面又来了 ...

最新文章

  1. 链表问题4——反转双向链表
  2. Java高并发编程:HandlerThread
  3. java 有没有with语句_Java中的try-with-resources语句
  4. 全栈工程师薪水_2020 Java 全栈工程师进阶路线图,不可错过
  5. D3 插入删除元素元素
  6. python-九九乘法打印
  7. python风变编程和扇贝编程_到底是扇贝编程还是风变编程?
  8. idea-统计代码行数Statistic
  9. TOSCA自动化测试工具
  10. STM32——EMWIN对话框(十二)
  11. 【高效程序员系列】3、别碰鼠标------让键盘飞起来
  12. c++并发编程实战 第一章
  13. 国外问卷调查这个项目可以做吗?国外问卷调查怎么赚钱?
  14. 为什么对渣土车的监控和管理如此重要
  15. 用户模块跳转、sso单点登录、跨域访问
  16. lin通信ldf文件解析_LIN通讯机制
  17. jquery/jquery-3.5.1.min.js net::ERR_ABORTED 404 (Not Found)
  18. 超详细!一篇文章带你轻松入门神经调控
  19. 如何将多页面pdf分割成一页一页的PDF文件
  20. java kfs_Hypertable hbase hdfs kfs java与c++的较量

热门文章

  1. 贪婪洞窟2服务器维护,《贪婪洞窟2》11月30日更新维护多久 贪婪洞窟2更新维护公告...
  2. Sublime Text 3 详细安装教程
  3. python去除中间空格只留一个_python 删除字符串中的连续空格只保留一个
  4. 爬虫必备反爬技能:使用动态ip
  5. 从您的计算机移除此产品,解决office提示“此操作只对目前安装的产品有效”的方法...
  6. Css内边距与外边距
  7. html文字如何排布成圆形,css多个扇形怎么拼凑成圆?
  8. linux下php支持mysql_linux下php扩展mysqli的支持 .
  9. mysql replication延迟_深入mysql主从复制延迟问题的详解
  10. UserWarning: Matplotlib is currently using agg in Object Detection API