redis 支撑许多言语的客户端。在官方网站上有支撑的一切的 [redis 客户端列表]。

  因为往常运用 java 作为开发言语,所以这儿描绘一下怎样通过 java 来联接和操作 redis 服务器。在官方文档中, Java 推荐的 redis 客户端是 Jedis ,这儿我们也用这个客户端对 redis 服务器进行操作。

  引进依托
  首要我们建立一个 maven 工程,在工程的 pom.xml 文件中参加 Jedis 的依托引证。为了便当查验,还参加了 Junit 依托。文件内容如下。

  
  
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.0.0

  com.x9710.common
  redis-util
  1.0-SNAPSHOT
  
  
  commons-logging
  commons-logging
  1.1.1
  
  
  log4j
  log4j
  1.2.17
  
  
  redis.clients
  jedis
  2.9.0
  

  
  junit
  junit
  4.12
  test
  
  
  

  创建联接类
  建立 redis 联接类 com.x9710.common.redis.RedisConnection 。(ecteema)内容如下
  package com.x9710.common.redis;

  import redis.clients.jedis.Jedis;
  import redis.clients.jedis.JedisPool;
  import redis.clients.jedis.JedisPoolConfig;

  public class RedisConnection {
  /**
  * redis 联接池配备信息
  */
  private JedisPoolConfig jedisPoolConfig;
  /**
  * redis 服务器地址
  */
  private String ip;

  /**
  * redis 服务器端口
  */
  private Integer port;

  /**
  * redis 服务器暗码
  */
  private String pwd;

  /**
  * redis 服务器联接超时时间
  */
  private Integer timeOut;

  /**
  * redis 联接客户端称谓
  */
  private String clientName = null;

  private JedisPool jedisPool;

  public void setJedisPoolConfig(JedisPoolConfig jedisPoolConfig) {
  this.jedisPoolConfig = jedisPoolConfig;
  }

  public void setIp(String ip) {
  this.ip = ip;
  }

  public void setPort(Integer port) {
  this.port = port;
  }

  public void setPwd(String pwd) {
  this.pwd = pwd;
  }

  public void setTimeOut(Integer timeOut) {
  this.timeOut = timeOut;
  }

  public void setClientName(String clientName) {
  this.clientName = clientName;
  }

  private void buildConnection() {
  if (jedisPool == null) {
  if (jedisPoolConfig == null) {
  jedisPool = new JedisPool(new JedisPoolConfig(), ip, port, timeOut, pwd, 0, clientName);
  } else {
  jedisPool = new JedisPool(jedisPoolConfig, ip, port, timeOut, pwd, 0, clientName);
  }
  }
  }

  public Jedis getJedis() {
  buildConnection();
  if (jedisPool != null) {
  return jedisPool.getResource();
  }
  return null;
  }

  }

  编写查验
  用一个查验类 com.x9710.common.redis.test.RedisConnectionTest 来查验 rdis 联接功用.(gzhongLan

  package com.x9710.common.redis.test;

  import com.x9710.common.redis.RedisConnection;
  import org.junit.Assert;
  import org.junit.Before;
  import org.junit.Test;
  import redis.clients.jedis.Jedis;
  import redis.clients.jedis.JedisPoolConfig;

  public class RedisConnectionTest {
  private RedisConnection redisConnection;

  @Before
  public void before() {
  JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
  //设置 redis 联接池最大联接数量
  jedisPoolConfig.setMaxTotal(50);
  //设置 redis 联接池最大闲暇联接数量
  jedisPoolConfig.setMaxIdle(10);
  //设置 redis 联接池最小闲暇联接数量
  jedisPoolConfig.setMinIdle(1);
  redisConnection = new RedisConnection();
  redisConnection.setIp("10.110.2.56");
  redisConnection.setPort(52981);
  redisConnection.setPwd("hhSbcpotThgWdnxJNhrzwstSP20DvYOldkjf");
  redisConnection.setClientName(Thread.currentThread().getName());
  redisConnection.setTimeOut(600);
  redisConnection.setJedisPoolConfig(jedisPoolConfig);
  }

  @Test
  public void testPutGet() {
  Jedis jedis = redisConnection.getJedis();
  try {
  jedis.select(1);
  jedis.set("name","grace");
  Assert.assertTrue("grace".equals(jedis.get("name")));
  } finally {
  if (jedis != null) {
  jedis.close();
  }
  }
  }
  }

  在 ide 环境中实施查验用例,作用如下。

  image
  现在,我们就在 Java 中使用 Jedit 客户端建立和 redis 的联接并且能够实施操作。对应的代码发布到了 GitHub 中

Java中怎么合理的使用redis?的更多相关文章

  1. Java中Redis简单入门

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...

  2. Java中Redis入门(1)

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...

  3. 在java中使用redis

    在java中使用redis很简单,只需要添加jedist.jar,通过它的api就可以了.而且,api和redis的语法几乎完全相同.以下简单的测试: 参考:http://www.runoob.com ...

  4. JAVA中使用Redis

    上节讲解了如何在centos上安装redis,点击查看.本节我们学习在java中使用redis.需要将jedis-*.jar添加到classpath(点击下载),如果使用连接池还需要commons-p ...

  5. Redis学习记录之Java中的初步使用

    1.关于Redis redis下载地址:<span style="font-family: Arial, Helvetica, sans-serif;">http:// ...

  6. JAVA中通过Jedis操作Redis连接与插入简单库

    一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...

  7. Redis笔记(六):Java中使用Redis

    Java程序使用Redis 添加依赖包 Maven依赖方式 <dependency> <groupId>redis.clients</groupId> <ar ...

  8. Redis实战——Redis的pub/Sub(订阅与发布)在java中的实现

    借鉴:https://blog.csdn.net/canot/article/details/51938955 1.什么是pub/sub Pub/Sub功能(means Publish, Subscr ...

  9. java中通过配置文件的方式(Jedis驱动)使用Redis

    在java中使用Redis,实际上是将Redis的一些命令封装到Jedis的实体类中,然后进行调用.

随机推荐

  1. Centos7源码编译安装PHP7.2(生产环境)

    安装PHP依赖包,否则在编译的过程中可能会出现各种报错 # Centos 安装epel-release源并将系统包更新到最新版本 $ yum install epel-release-y $ yum ...

  2. Global AI Bootcamp 2019 宁波站活动总结

    2019年12月14日,由微软MVP技术社区发起的Global AI Bootcamp 2019盛会在全球60多个国家130个城市点燃.在大中华区,本次活动由全国众多Azure专家及微软MVP技术社区 ...

  3. Hibernate 知识收纳.

     一.乐观锁和悲观锁 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿 ...

  4. 利用Runtime对Ivar实例变量进行共用的归档和解档方式

    一.介绍 在OC中每一个对象持有的变量都是实例变量,实例变量包括成员变量和属性变量,在runtime中用Ivar表示对象的实例变量.其实,runtime源码中可以看到,Ivar也是一个结构体(基本上在 ...

  5. Tensorflow分布式部署和开发

    关于tensorflow的分布式训练和部署, 官方有个英文的文档介绍,但是写的比较简单, 给的例子也比较简单,刚接触分布式深度学习的可能不太容易理解.在网上看到一些资料,总感觉说的不够通俗易懂,不如自 ...

  6. 【2016NOI十连赛2-2】黑暗

    [2016NOI十连赛2-2]黑暗 题目大意:定义一个无向图的权值为连通块个数的\(m\)次方.求\(n\)个点的所有无向图的权值和.多次询问. 数据范围:\(T\leq 1000,n\leq 300 ...

  7. sql慢查询工具(配置代码)

    # 在mysql的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]中配置懒查询 slow_query_log = ON # 是否已经开启慢查询 long_q ...

  8. oracle查找某个字符在字符串中的个数的技巧

    Oracle没有提供查找某个字符在字符串中出现次数的函数,当遇到这样的需求的时候,我们只能使用另外的方法去实现. 简单的思路就是,假设有个字符串str,然后里面有n个[a]字符,当把这n个[a]字符去 ...

  9. 【学习笔记】动态规划—各种 DP 优化

    [学习笔记]动态规划-各种 DP 优化 [大前言] 个人认为贪心,\(dp\) 是最难的,每次遇到题完全不知道该怎么办,看了题解后又瞬间恍然大悟(TAT).这篇文章也是花了我差不多一个月时间才全部完成 ...

  10. Java报错:java.math.BigDecimal cannot be cast to java.lang.String

    从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...