zoukankan      html  css  js  c++  java
  • Java 操作Redis

    一、 使用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原生指令大同小异,抽取为通用工具类。

  • 相关阅读:
    同余方程
    倒酒
    机器翻译
    vue 锚点定位
    解决vuex刷新页面数据丢失
    h5 input失去焦点软键盘把页面顶起
    js 监听ios手机键盘弹起和收起的事件
    js 将数组中的每一项安装奇偶重新组合成一个数组对象
    moment.js获取本周本月本年的开始日期和结束日期
    vue 所有的路由跳转加一个统一参数
  • 原文地址:https://www.cnblogs.com/walkwithmonth/p/12314911.html
Copyright © 2011-2022 走看看