当前位置: 移动技术网 > IT编程>数据库>MongoDB > Java 操作Redis

Java 操作Redis

2020年03月09日  | 移动技术网IT编程  | 我要评论
一、 使用Java操作Redis前,请先运行Redis服务与下载Redis驱动,以maven工程为例,引入如下jar <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0 ...

一、 使用java操作redis前,请先运行redis服务与下载redis驱动,以maven工程为例,引入如下jar 

<dependency>
	<groupid>redis.clients</groupid>
	<artifactid>jedis</artifactid>
        <version>2.9.0</version>
</dependency>

 创建测试类,验证是否成功连接

public static void main(string[] args) {
	    //设置ip与端口,连接 redis 服务
	    jedis jedis = new jedis("127.0.0.1",6379);
	    //设置 密码
	    jedis.auth("1d9jj9jij0003e4710ac0000596f1a72");
	    //查看服务是否运行,打出pong表示ok
	    system.out.println("connection is ok==========>: "+jedis.ping());
	    string name = jedis.get("admin");
	    system.out.println("姓名:" + name);
	    string noticeval = jedis.hget("notice", "admin");
	    system.out.println("通知结果:" + noticeval);
}

 执行成功,结果如下

connection is ok==========>: pong
姓名:null
通知结果:0

 

二、连接池管理redis连接,引入redis.properties配置文件

# redis settings
# 最大闲置数
redis.maxidle=30
# 最小闲置数
redis.minidle=10
# 最大连接数
redis.maxtotal=100
# redis服务器的ip地址
redis.url=127.0.0.1
# redis端口
redis.port=6379
# redis密码
redis.password=1d9jj9jij0003e4710ac0000596f1a72
# 超时时间
redis.timeout=2000

  编写工具类redisutil  

package com.util;

import java.io.ioexception;
import java.io.inputstream;
import java.util.properties;

import org.apache.commons.logging.log;
import org.apache.commons.logging.logfactory;

import redis.clients.jedis.jedis;
import redis.clients.jedis.jedispool;
import redis.clients.jedis.jedispoolconfig;

/**
 * redisutil工具类
 * 
 * @author administrator
 *
 */

public final class redisutil {

	private static final log logger = logfactory.getlog(redisutil.class);

	private static jedispool jedispool = null;

	/**
	 * 初始化redis连接池
	 */
	static {
		try {
			// 加载配置文件
			inputstream in = redisutil.class.getclassloader().getresourceasstream("redis.properties");
			properties pro = new properties();
			try {
				pro.load(in);
			} catch (ioexception e) {
				e.printstacktrace();
			}
			// 获得池子对象
			jedispoolconfig poolconfig = new jedispoolconfig();
			poolconfig.setmaxidle(integer.parseint(pro.get("redis.maxidle")
					.tostring()));// 最大闲置个数
			poolconfig.setminidle(integer.parseint(pro.get("redis.minidle")
					.tostring()));// 最小闲置个数
			poolconfig.setmaxtotal(integer.parseint(pro.get("redis.maxtotal")
					.tostring()));// 最大连接数
			jedispool = new jedispool(poolconfig, pro.getproperty("redis.url"),
					integer.parseint(pro.getproperty("redis.port")),
					integer.parseint(pro.getproperty("redis.timeout")),
					pro.getproperty("redis.password"));
		} catch (exception e) {
			logger.error("异常错误", e);
		}
	}

	/**
	 * 获取jedis实例
	 * 
	 * @return
	 */
	public synchronized static jedis getjedis() {
		try {
			if (jedispool != null) {
				jedis resource = jedispool.getresource();
				return resource;
			} else {
				return null;
			}
		} catch (exception e) {
			e.printstacktrace();
			return null;
		}
	}

	/**
	 * 释放jedis资源
	 * 
	 * @param jedis
	 */
	public static void returnresource(final jedis jedis) {
		if (jedis != null) {
			jedis.close();
		}
	} 
}

 测试

public static void main(string[] args) {
		jedis jedis = redisutil.getjedis();
		string result = jedis.set("admin", "管理员");
		system.out.println("结果:" + result);
		//释放资源
		redisutil.returnresource(jedis);
	}
结果:ok

 

   使用redisdesktopmanager可视化工具查看

 

  其他数据类型如hash(哈希)、list(列表)、set(集合)及zset(有序集合)的增删改查操作和redis原生指令大同小异,抽取为通用工具类。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网