jedispool释放连接_redis项目实例

jedispool释放连接_redis项目实例1.下载redis,地址:https://download.csdn.net/download/rexueqingchun/103247192.设置redis密码,修改redis.windows.conf配置文件,去掉requirepassfoobared前面的注释  (注:foobared为默认密码,可以自定义密码,例如:123456)3.在redis目录中新建startup.bat,添加re…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.下载redis,地址:https://download.csdn.net/download/rexueqingchun/10324719

2.设置redis密码,修改redis.windows.conf配置文件,去掉requirepass foobared前面的注释

  (注:foobared为默认密码,可以自定义密码,例如:123456)

3.在redis目录中新建startup.bat,添加redis-server.exe redis.windows.conf命令,通过startup.bat启动服务

4.项目中添加 jedis-2.1.0.jar,地址:https://download.csdn.net/download/rexueqingchun/10324985

5.项目中新建redis.properties文件:

#访问地址
redis.host=127.0.0.1
#访问端口
redis.port=6379
#注意,如果没有password,此处不设置值,但这一项要保留
redis.password=123456
#最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
redis.maxIdle=300
#连接池的最大数据库连接数。设为0表示无限制  
redis.maxActive=600
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
redis.maxWait=1000
#在borrow一个jedis实例时,是否提前进行alidate操作;如果为true,则得到的jedis实例均是可用的;  
redis.testOnBorrow=true
#客户端连接超时时间
redis.timeout=30000
#可用数据库数
redis.database = 0

6.项目中新建redis-context.xml文件:

<beans xmlns="http://www.springframework.org/schema/beans" 
		   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		   xmlns:p="http://www.springframework.org/schema/p" 
		   xmlns:tx="http://www.springframework.org/schema/tx"
		   xmlns:context="http://www.springframework.org/schema/context"
		   xsi:schemaLocation="
			http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
			http://www.springframework.org/schema/context
			http://www.springframework.org/schema/context/spring-context-3.0.xsd
			   ">
	
	<!-- 加载redis属性文件  --> 
	<context:property-placeholder location="classpath*:/redis.properties" />
	
	<!-- redis连接池  --> 
	<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">  
		<property name="maxIdle" value="${redis.maxIdle}" />  
		<property name="maxActive" value="${redis.maxActive}" />  
		<property name="maxWait" value="${redis.maxWait}" />  
		<property name="testOnBorrow" value="${redis.testOnBorrow}" />  
	</bean>  
	
	<!-- 单片机方式  -->
	<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
            <constructor-arg name="poolConfig" ref="poolConfig" />
            <constructor-arg name="host" value="${redis.host}" />
            <constructor-arg name="port" value="${redis.port}" type="int" />
            <constructor-arg name="timeout" value="${redis.timeout}" type="int" />
            <constructor-arg name="password" value="${redis.password}" />
            <constructor-arg name="database" value="${redis.database}" type="int" />
        </bean>
	
        <!-- 集群方式  --> 
	<!-- <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool"  scope="singleton">
    	<constructor-arg index="0" ref="poolConfig" />
        <constructor-arg index="1">
            <list>
                <bean class="redis.clients.jedis.JedisShardInfo">
                    <constructor-arg name="host" value="${redis.host}" />
                </bean>
            </list>
        </constructor-arg>
        </bean> -->
</beans>			

 在web.xml中引入redis-context.xml文件:

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>
		/WEB-INF/applicationContext.xml;
		/WEB-INF/redis-context.xml;
	</param-value>
</context-param>

7.在service中注入jedisPool:

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.com.highset.goexpo.util.JsonDateValueProcessor;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

@Service
public class RedisService {
	
	@Autowired
        private JedisPool jedisPool;//注入jedisPool
	
	//保存单个值
	public void set(String key,String value){
            Jedis jedis = jedisPool.getResource();
            jedis.set(key, value);
	}
	
	//获取单个值
	public String get(String key){
	    String value = "";
	    Jedis jedis = jedisPool.getResource();
            value = jedis.get(key);
            return value;
	}
	
	//根据key删除值
	public void del(String key){
	    Jedis jedis = jedisPool.getResource();
            jedis.del(key);
	}

	//保存list集合
	public void setList(String key,List<Map> list){
	    if(list != null){
	        Jedis jedis = jedisPool.getResource();
		for(Map m : list){
		    JsonConfig jsonConfig = new JsonConfig();  
		    //处理时间格式,注意时间类型java.sql.Timestamp/java.util.Date/java.sql.Date
		    jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class, new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss"));  
		    JSONObject jsonObject = JSONObject.fromObject(m,jsonConfig);  
                    String jsonString = jsonObject.toString(); 
                    jedis.rpush(key, jsonString);
	        }
	    }
	}
	
	//获取list集合
	public List<Map> getList(String key){
	    List<Map> listMap = new ArrayList<Map>();
	    Jedis jedis = jedisPool.getResource();
	    List<String> list = jedis.lrange(key, 0, -1);  
            for(String m : list){  
        	JSONObject jsonObject = JSONObject.fromObject(m);
                Map<Object, Object> map = (Map)jsonObject;
                listMap.add(map);
            }  
            return listMap;
	}
	
	//获取list分页数据
	public List<Map> getPageList(String key,int start,int end){
	    List<Map> listMap = new ArrayList<Map>();
	    Jedis jedis = jedisPool.getResource();
	    List<String> list = jedis.lrange(key, start, end);  
            for(String m : list){  
        	JSONObject jsonObject = JSONObject.fromObject(m);
                Map<Object, Object> map = (Map)jsonObject;
                listMap.add(map);
            }  
            return listMap;
	}
}

8.处理json日期格式工具类:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class JsonDateValueProcessor implements JsonValueProcessor { 
	
    private String format ="yyyy-MM-dd hh:mm:ss";  
      
    public JsonDateValueProcessor() {  
        super();  
    }  
      
    public JsonDateValueProcessor(String format) {  
        super();  
        this.format = format;  
    }  
  
    @Override  
    public Object processArrayValue(Object paramObject,JsonConfig paramJsonConfig) {  
        return process(paramObject);  
    }  
  
    @Override  
    public Object processObjectValue(String paramString, Object paramObject,JsonConfig paramJsonConfig) {  
        return process(paramObject);  
    }  
      
    private Object process(Object value){  
        if(value instanceof Date){    
            SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);    
            return sdf.format(value);  
        }    
        return value == null ? "" : value.toString();    
    }  
}  

附常用redis命令:

启动redis服务:redis-server.exe redis.windows.conf 
远程连接redis服务:redis-cli -h 127.0.0.1 -p 6379
设置key:set key value
获取key值:get key
查看是否设置密码:config get requirepass
登录密码:auth password

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197055.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 简单的说下nginx和apache的区别~~~[通俗易懂]

    简单的说下nginx和apache的区别~~~[通俗易懂]浅谈nginx和apache的优缺点~~~一、分别介绍nginx和apache1.nginx2.apache二、apache相对于nginx的优缺点1.优点2.缺点总结一、分别介绍nginx和apache1.nginx什么是nginx:Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru站点开发,Nginx因为性能稳定、低系统资源消耗而闻名,近几年Nginx在国内已经成炙热化状态,比如像腾讯、网易、51CTO、迅雷、当当

  • dsp运动控制卡_营销行动方案控制

    dsp运动控制卡_营销行动方案控制ARM+FPGA运动控制卡运动控制卡方案运动控制卡方案运动控制卡方案由于ARM源码核心运动控制算法部分缺失,因此便宜出售此资料,拍前请了解好,不接受退货,资料包含此运动控制卡原理图,PCB图,FPGA源码,ARM去掉算法后的框架源码,拍下后发邮箱。本运动控制卡采用ARM单片机+FPGA架构;ARM单片机是基于Cortex-M3内核的LM3S6911,插补核心算法均在该ARM内完成,一方面通过以太网与上位机界面交换加工数据,另一方面与FPGA(ALTERA的EP1C3)交换加工脉冲计数与IO

    2022年10月15日
  • [转]Android 源代码结构

    [转]Android 源代码结构

  • CI框架下 新浪微博登录接口完整版

    CI框架下 新浪微博登录接口完整版

    2021年10月25日
  • magento soap api

    magento soap apiSOAP:simpleobjectaccessprotocol;WSDL:webservicedescriptionlanguage;MagentoSoapV1v1扩展案例step1:在etc下新建api.xml,内容如下

  • 简述ip地址的abc类如何划分_IP 地址分类及 ABCDE 五类是如何划分的

    简述ip地址的abc类如何划分_IP 地址分类及 ABCDE 五类是如何划分的我们先了解下什么是IP地址,英文全称为:InternetProtocolAddress,缩写为:IPAdress,这是在网络上给主机统一编址的一种地址格式,也称为网络协议(IP协议)地址。它为互联网上的每一个网络和主机分配一个逻辑地址,而IP地址分为IPv4与IPv6两个类别,目前应用较多的是IPv4,当资源耗尽时自然会升级到IPv6。什么是ip地址IP地址由四个段组成,每个字段是一个字节,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号