- 浏览: 274025 次
- 性别:
- 来自: 南宁
文章分类
- 全部博客 (249)
- Memcached (6)
- 操作系统-Linux (18)
- 操作系统-Windows (2)
- JAVA-多线程 (6)
- Java-Web (46)
- Eclipse (19)
- Struts-Spring-Hibernate (25)
- 消息队列 (10)
- JBPM (3)
- 全文检索-Solr (2)
- WebService (3)
- 数据库-Oracle (9)
- 数据库-MySQL (14)
- 数据库-MS SQL (2)
- ESB(企业服务总线) (1)
- 前端技术 (9)
- 互联网安全技术 (1)
- 日志log4j (3)
- 分布式框架 (11)
- 版本控制-SVN (3)
- 版本控制-Git (5)
- Maven (11)
- 大数据-Hadoop (3)
- PHP (1)
- JAVA注解 (2)
- 系统架构 (1)
- 会话-权限-JWT (10)
- 定时任务 (1)
- 非技术 (1)
- Redis (5)
- Nginx (5)
- 云计算和虚拟化 (1)
- swagger (1)
- 移动端UI和框架 (5)
最新评论
-
lgh1992314:
applicationContext.xml 是 spring ...
Spring的applicationContext和spring-mvc.xml的区别
1 下载memcached-1.2.1-win32.zip 并且解压.
2 新建web project项目 名字自己取,然后导入必要的包,alisoft-xplatform-asf-cache-2.5.1.jar,commons-logging-1.0.3.jar,log4j-1.2.13.jar
3 新建类 user.java
4 新建 JdbcConnector.java
5 新建 UserDao.java
6 新建 MemcachedManager.java
结果从控制台输出:
从缓存中取得的集合为:uname
从缓存中取得的集合为:uname1
从缓存中取得的集合为:uname2
从缓存中取得的集合为:uname3
来自:http://zxe-llh-163-com.iteye.com/blog/1158721
2 新建web project项目 名字自己取,然后导入必要的包,alisoft-xplatform-asf-cache-2.5.1.jar,commons-logging-1.0.3.jar,log4j-1.2.13.jar
3 新建类 user.java
package bean; import java.io.Serializable; public class User implements Serializable{ /** * 序列号 */ private static final long serialVersionUID = -3896605600471191953L; private int uid; private String uname; private String upass; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpass() { return upass; } public void setUpass(String upass) { this.upass = upass; } }
4 新建 JdbcConnector.java
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JdbcConnector { // 定义数据库连接常量 private final static String DRIVER = "com.mysql.jdbc.Driver"; private final static String URL = "jdbc:mysql://192.168.1.13:3306/test"; private final static String DBNAME = "root"; private final static String DBPASS = "123456"; /** * 得到数据库连接 * @return * @throws ClassNotFoundException * @throws SQLException */ public Connection getConn()throws ClassNotFoundException,SQLException { // 加载驱动 Class.forName(DRIVER); // 通过DriverManager对象得到连接 Connection conn = DriverManager.getConnection(URL,DBNAME,DBPASS); // 返回数据库连接 return conn; } }
5 新建 UserDao.java
package util; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import bean.User; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.ResultSet; public class UserDao extends JdbcConnector { // 定义全局变量 Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; /** * 根据Id查询用户 * @param uid * @return */ public User getUserById(int uid) { // 创建User对象 User user = null; // 创建SQL语句 String sql = "select * from user where uid=?"; try { // 获得数据库连接 conn = (Connection) this.getConn(); // 通过Connection对象创建PrepareStatement对象 pstmt = (PreparedStatement) conn.prepareStatement(sql); // 设置SQL语句的参数 pstmt.setInt(2, uid); // 执行查询,将查询结果赋给ResultSet对象 rs = (ResultSet) pstmt.executeQuery(); // 遍历指针 while (rs.next()) { user = new User(); user.setUid(rs.getInt("uid")); user.setUname(rs.getString("uname")); user.setUpass(rs.getString("upass")); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return user; } /** * 查询所有用户 * @return */ @SuppressWarnings("unchecked") public List getUserList() { // 创建ArrayList对象 List userList = new ArrayList(); // 创建SQL对象 String sql = "select * from user"; try { conn = (Connection) this.getConn(); pstmt = (PreparedStatement) conn.prepareStatement(sql); rs = (ResultSet) pstmt.executeQuery(); while (rs.next()) { User user = new User(); user.setUid(rs.getInt("uid")); user.setUname(rs.getString("uname")); user.setUpass(rs.getString("upass")); userList.add(user); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return userList; } }
6 新建 MemcachedManager.java
package memcachedTest; import java.util.Date; import java.util.List; import util.UserDao; import bean.User; import com.alisoft.xplatform.asf.cache.memcached.client.MemCachedClient; import com.alisoft.xplatform.asf.cache.memcached.client.SockIOPool; public class MemcachedManager { // 创建MemCachedClient全局对象 private static MemCachedClient mcc = new MemCachedClient(); static { // 创建服务器列表及其权重 String[] servers = {"127.0.0.1:11211"}; Integer[] weights = {3}; // 创建Socket连接池对象 SockIOPool pool = SockIOPool.getInstance(); // 设置服务器信息 pool.setServers(servers); pool.setWeights(weights); pool.setFailover(true); // 设置初始连接数、最小和最大连接数以及最大处理时间 pool.setInitConn(5); pool.setMinConn(5); pool.setMaxConn(250); pool.setMaxIdle(1000*60*60*6); // 设置主线程睡眠时间 pool.setMaintSleep(30); // 设置TCP参数、连接超时等 pool.setNagle(false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); pool.setAliveCheck(true); // 初始化连接池 pool.initialize(); // 压缩设置,超过指定大小(单位为K)的数据都会被压缩 mcc.setCompressEnable(true); mcc.setCompressThreshold(64 * 1024); } /** * 无参构造 */ protected MemcachedManager (){ } // 受保护的对象 protected static MemcachedManager instance = new MemcachedManager(); /** * 为受保护的对象提供一个公共的访问方法 */ public static MemcachedManager getInstance () { return instance; } /** * 添加对象到缓存中,构成方法重载 * @param key * @param value * @return */ public boolean add(String key,Object value) { return mcc.add(key, value); } public boolean add (String key,Object value,Date expiry) { return mcc.add(key, value,expiry); } public boolean replace (String key,Object value) { return mcc.replace(key, value); } public boolean replace (String key,Object value,Date expiry) { return mcc.replace(key, value, expiry); } /** * 根据指定的关键字获取对象 */ public Object get(String key) { return mcc.get(key); } /** * 利用MemCached测试将单个对象存入缓存,并从缓存中取出 */ // public static void main(String[] args) { // // 得到MemcachedManager实例 // MemcachedManager cache = MemcachedManager.getInstance(); // // // 创建UserDao对象 // UserDao userDao = new UserDao(); // // 查询单个User对象 // User user = userDao.getUserById(4); // // // 将User对象添加到缓存中 // cache.add("user", user.getUname()); // // // 将User对象从缓存中取出来 // String uname = (String)cache.get("user"); // // System.out.println("从缓存中取出的对象为:" + uname); // } /** * 利用MemCached对象将集合存入缓存,并从缓存中取出 */ @SuppressWarnings({ "unchecked", "rawtypes" }) public static void main(String[] args) { // 得到MemcachedManager实例 MemcachedManager cache = MemcachedManager.getInstance(); // 创建UserDao对象 UserDao userDao = new UserDao(); // 得到集合对象 List userList = userDao.getUserList(); // 创建User对象 User user = null; for (int i=0; i<userList.size(); i++) { // 循环遍历集合对象 user = (User)userList.get(i); user.getUid(); user.getUname(); user.getUpass(); // 将集合对象存入缓存中 cache.add("userList" + i,user.getUname()); // 将集合从缓存中取出 String uname = (String)cache.get("userList"+i); System.out.println("从缓存中取得的集合为:" + uname); } } }
结果从控制台输出:
从缓存中取得的集合为:uname
从缓存中取得的集合为:uname1
从缓存中取得的集合为:uname2
从缓存中取得的集合为:uname3
来自:http://zxe-llh-163-com.iteye.com/blog/1158721
发表评论
-
吾问无为谓
2018-06-01 12:07 453微服务框架的技术选型又增加了一个。 -
linux下memcached的启动/结束的方式
2015-01-26 18:17 505当前项目中,linux下memcached的启动/结束的方式 ... -
Memcached安装及问题解决汇总
2015-01-21 11:15 495一、安装顺序 (1) libtool (2) auto ... -
在Linux上安装Memcached服务
2015-01-20 19:50 482下载并安装Memcache服务器端 服务器端主要是安装memc ... -
Java使用memcached
2014-12-07 16:40 5111.加载commons-pool-1.5.6.jar、java ...
相关推荐
**Memcached缓存系统详解与应用实践** Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。它通过将数据存储在内存中,使得数据的读取速度大大提高,...
本文将详细解析如何在Java项目中使用Memcached,包括其配置方法以及一个具体的示例代码,旨在帮助开发者深入理解并掌握这一技术。 ### 一、Memcached简介 Memcached是一种开源的高性能内存键值存储系统,主要用于...
- **数据分片**:根据业务需求,可以将数据分散到多个Memcached实例上,以提高并发性能和整体容量。 - **缓存一致性**:在分布式环境中,需要考虑缓存与数据库的一致性问题,如使用缓存失效策略或更新时的CAS...
2. **集群部署**:使用多个Memcached实例构建集群,通过负载均衡来分发请求,提高处理能力。 3. **使用更先进的解决方案**:随着技术的发展,一些新的缓存方案,如Redis或作者新推出的Groupcache(使用Go语言编写)...
以下是一个简单的Java实例,演示如何使用Spymemcached连接到Memcached服务器并执行基本操作: 1. **添加依赖** 首先,你需要在项目中添加Spymemcached的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下...
Java 缓存系统实战主要涉及的是使用 Memcached 这一开源缓存框架,它是一个高性能、分布式的内存对象缓存系统。Memcached 提供了 key-value ...通过了解其原理和实践操作,开发者可以更好地利用缓存技术优化应用程序。
**标题:“memcached java简单实例”** 在Java开发中,我们常常会遇到缓存的需求,以提高应用程序的性能。Memcached是一款高效的分布式内存对象缓存系统,它能够将数据存储在内存中,从而减少对数据库的访问。这篇...
在Java环境下,Memcached作为内存缓存技术,通过高效的键值对存储和分布式特性,能够显著提升Web应用的性能。开发者可以选择适合的客户端库进行集成,并掌握其核心概念、操作方法以及最佳实践,从而在实际项目中发挥...
Java与Memcached的结合使用是分布式缓存领域中常见的技术实践。Memcached是一款高性能、分布式内存对象缓存系统,它可以将数据存储在内存中,从而加快读取速度,减轻数据库的负担。Java作为广泛使用的编程语言,有...
这个“memcached缓存技术代码版”可能包含了使用Java语言在Eclipse开发环境中实现Memcached缓存功能的示例代码。在这里,我们将深入探讨Memcached的基本概念、工作原理以及如何在Java项目中集成和使用它。 1. **...
**Memcached缓存技术详解** Memcached是一款高性能的分布式内存对象缓存系统,它被广泛应用于Web应用中,用于缓解数据库的压力,提高数据访问速度。本文将深入探讨Memcached的基本概念、工作原理、安装配置、使用...
osCache虽然功能强大,但在Java缓存领域,还有其他如EHCache、Memcached和Redis等解决方案。每种缓存都有其特点和适用场景,比如EHCache同样适用于本地缓存,而Memcached和Redis更适合分布式缓存环境。 总结,...
Java缓存技术是提高应用程序性能的关键工具,尤其是在处理大量数据时。它通过将频繁访问的数据存储在内存中,避免了每次请求时从慢速的硬盘或远程服务获取数据,从而显著提高了系统的响应速度。本文档主要关注Java...
**memcached缓存技术详解** `memcached` 是一个高性能的分布式内存对象缓存系统,它广泛应用于Web应用中以减轻数据库的负载。通过将数据存储在内存中,memcached可以快速提供数据,从而提高应用的响应速度。本文将...
数据平台缓存技术方案Memcached-Redis 汇编 Memcached 是高性能的分布式内存缓存服务器,协议简单,通过缓存数据库的查询结果,减少数据库访问次数,提高动态 Web 应用的速度和扩展性。Memcached 支持多种语言,...
- **memcached不互相通信的分布式**:每个memcached实例都是独立的,它们之间不共享数据,也不互相通信。这使得系统具有良好的扩展性和容错能力。 **1.3 安装memcached** - **memcached的安装**:通常通过包管理器...
Java缓存技术是提高应用程序性能的关键工具,尤其是在处理大量数据时。在给定的资源中,我们可以看到四个项目源代码,分别与缓存相关的技术有关,可能是为了演示或实现不同的缓存策略。此外,还有一个"java缓存_...
该压缩包中有一个WORD和一个PPT,WORD中介绍了通过单实例和简单LRU算法实现缓存。PPT中介绍了缓存体系,JVM内存模型,JCONSOLE监控工具的使用,Oscache缓存架构 Ehcache缓存架构 Memcached缓存架构 JiveCache缓存架构...
使用Java Memcached驱动包的基本步骤通常包括:导入`mem-java.jar`库,创建Memcached客户端实例,配置服务器列表,然后调用相应接口进行数据操作。同时,可以结合`mem-doc`中的文档来获取详细的使用指南和API说明。 ...
在分布式环境中,多个Memcached实例需要保持数据一致性。常见的解决方案有:一致性哈希、轮询、随机选择等。 **最佳实践** 1. **对象瘦身**:尽量减少对象的大小,避免存储不必要的数据。 2. **缓存更新策略**:与...