spring集成memcached两种方式
来源:互联网 发布:mpp软件下载 编辑:程序博客网 时间:2024/06/04 17:51
由于项目需要简单的理解了一些memcached的运行,现在比较流行的缓存框架是Redis,本文不介绍了。
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
memcached作为高速运行的分布式缓存服务器,具有以下的特点。
· 协议简单
· 基于libevent的事件处理
· 内置内存存储方式
· memcached不互相通信的分布式
不多说理论了,直接上干货
第一种方式不通过spring
MyMemcachedUtil工具类测试
第二种方式通过spring集成
配置applicationContext.xml
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="order" value="1"/> <property name="ignoreUnresolvablePlaceholders" value="true"/> <property name="locations"> <list> <!--<value>classpath:/com/springmvc/config/memcached.properties</value>--> <value>/WEB-INF/config/memcached.properties</value> </list> </property> </bean> <!-- 客户端:java_memcached-release_2.6.3 --><bean id="memcachedPool" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" lazy-init="false" destroy-method="shutDown"><constructor-arg><value>memcachedPool</value></constructor-arg><!-- 可以设置多个memcached服务器 --><property name="servers"> <list> <value>${memcached.server1}:${memcached.port1}</value> </list></property><!-- 每个服务器初始连接数 --><property name="initConn"> <value>${memcached.initConn}</value> </property><!-- 每个服务器最小连接数 --><property name="minConn"> <value>${memcached.minConn}</value> </property><!-- 每个服务器最大连接数 --><property name="maxConn"> <value>${memcached.maxConn}</value> </property><!-- 主线程睡眠时间 --><property name="maintSleep"> <value>${memcached.maintSleep}</value> </property><!-- TCP/Socket的参数,如果是true在写数据时不缓冲,立即发送出去参数 --><property name="nagle"> <value>${memcached.nagle}</value> </property><!-- 连接超时/阻塞读取数据的超时间是 --><property name="socketTO"> <value>${memcached.socketTO}</value> </property></bean><bean id="memcachedClient" class="com.danga.MemCached.MemCachedClient" ><constructor-arg><value>memcachedPool</value></constructor-arg></bean>配置memcached.properties文件
#服务器地址 memcached.server1=127.0.0.1memcached.port1=11211#memcached.server=127.0.0.1:11211#初始化时对每个服务器建立的连接数目 memcached.initConn=20 #每个服务器建立最小的连接数 memcached.minConn=10 #每个服务器建立最大的连接数 memcached.maxConn=50 #自查线程周期进行工作,其每次休眠时间 memcached.maintSleep=3000 #Socket的参数,如果是true在写数据时不缓冲,立即发送出去 memcached.nagle=false #Socket阻塞读取数据的超时时间 memcached.socketTO=3000
配置spring-servlet-config.xml
<!-- 使用@Controllers前配置 --> <mvc:annotation-driven /> <!-- 容器加载时 自动扫描所有注解 --> <context:component-scan base-package="com.test" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:include-filter type="annotation" expression="org.springframework.stereotype.Service" /> <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" /> <context:include-filter type="annotation" expression="org.springframework.stereotype.Component" /> </context:component-scan> <!-- 配置静态资源 --> <mvc:resources mapping="/js/**" location="/js/" /> <mvc:resources mapping="/image/**" location="/image/" /> <mvc:resources mapping="/css/**" location="/css/" /> <!-- 使用jsp作为视图 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.JstlView</value> </property> <!-- 目标路径返回到pages下 使用jsp作为视图 --> <property name="prefix" value="/pages/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 异常处理 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.apache.shiro.authz.UnauthorizedException">error/403</prop> </props> </property> </bean>
配置web.xml
<!-- 引入 spring --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/applicationContext..xml</param-value> </context-param> <!-- 引入 springMVC --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/spring-servlet-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 编码 UTF-8 --> <filter> <filter-name>SpringMVC-Memcached-Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>SpringMVC-Memcached-Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
测试类contoller
@RequestMapping("/login") public ModelAndView login( @RequestParam(value = "username") String username, @RequestParam(value = "password") String password, HttpSession session){ ModelAndView m = new ModelAndView(); m.setViewName("index");//成功返回/pages/index.jsp Memcached.set("wasd", "12ab",new Date(1000 * 60)); Object ss = Memcached.get("wasd"); System.out.println(ss.toString()); m.addObject("returnMsg","好的!"); return m; }效果图
相关jar
0 0
- spring集成memcached两种方式
- Spring集成Memcached三种方式
- Spring集成Memcached三种方式
- Struts和Spring集成的两种方式
- CXF 和Spring 集成开发两种发布方式
- Spring集成Hibernate框架的两种方式
- spring集成定时任务框架 Quartz的两种方式
- spring-data-redis集成的两种方式
- memcached和spring集成
- memcached+spring集成
- memcached与spring集成
- memcached+spring集成
- memcached+spring集成
- Spring 集成 MemCached
- memcached和spring集成
- spring集成memcached
- Spring Cache集成memcached
- XFire与Spring集成时WebService客户端的两种开发方式
- for in.forEach.for
- 硬实时嵌入式操作系统开发(1)
- MTCNN(Multi-task convolutional neural networks)人脸对齐
- Tomcat源码分析之Connector
- 1055.The World's Richest (25)
- spring集成memcached两种方式
- 第二章(为什么number.ToString()不属于装箱? 交换变量之间的值)
- 每天一个linux命令:mkdir命令
- 回顾总结2016年,展望新年的小目标
- 一个正规软件公司工作职责划分
- Android Studio使用Lint进行代码检查
- php等比例压缩图片
- UI界面得而播放和暂停的代码演示
- hdu 1029 Ignatius and the Princess IV