技术积累(二)redis

来源:互联网 发布:c语言源文件名的后缀 编辑:程序博客网 时间:2024/06/05 11:06

1. 首先

  定义一个 获取 jedis 的工具类,将 redis 的各种配置 初始化

      负责 获取  Jedis 的 RedisService

RedisService
package com.zswl.back.service;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class RedisService {// Redis服务器IPprivate static String ADDR = "192.168.3.110";// Redis的端口号private static int PORT = 6379;// 访问密码// private static String AUTH = "admin";// 可用连接实例的最大数目,默认值为8;// 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。// private static int MAX_ACTIVE = 1024;private static int MAX_ACTIVE = -1;// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。private static int MAX_IDLE = 200;// 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;// private static int MAX_WAIT = 10000;private static int MAX_WAIT = -1;private static int TIMEOUT = 10000;// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;private static boolean TEST_ON_BORROW = true;private static JedisPool jedisPool = null;/** * 初始化Redis连接池 */static {try {JedisPoolConfig config = new JedisPoolConfig();config.setMaxActive(MAX_ACTIVE);config.setMaxIdle(MAX_IDLE);config.setMaxWait(MAX_WAIT);config.setTestOnBorrow(TEST_ON_BORROW);jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, null);} catch (Exception e) {e.printStackTrace();}}/** * 获取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 ssh */public static void returnResource(final Jedis jedis) {if (jedis != null) {jedisPool.returnResource(jedis);}}}

调用 就是:

             RedisUtil.setString(jedis ,key ,value);

import redis.clients.jedis.Jedis;public class RedisUtil {/** * redis:新增 String 类型对象 * @param jedisJedis对象 * @param key名称 * @param value值 * @return */public static String setString(Jedis jedis, String key, String value){jedis.set(key, value);return "suc";}public static void main(String[] args) {//打开链接 redis 数据库Jedis jedis = RedisService.getJedis();// 直接赋值String str = RedisUtil.setString(jedis, "name", "hushitao");System.out.println(str);//关闭 redis 数据库RedisService.returnResource(jedis);}}

实际使用中:

        在 controller层:

               Jedis jd=RedisService.getJedis();

            String user=   jd.get("User");

       if(user==null){

                    为空 则调用 服务器端        

                      

           }else{

                      直接 将数据存储到 request里面

                 } 

 实例如下:





0 0