最近写了一个购物商城的网站,考虑到收藏商品的数量庞大,如果将数据保存到数据库会对数据库造成压力,所有在对商品进行收藏处理的时候使用了Memcached分布式系统,将收藏的商品保存到了内存中。
Memcached 分布式内存对象缓存系统Memcached 工具类的代码如下:
- import com.danga.MemCached.MemCachedClient;
- import com.danga.MemCached.SockIOPool;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Memcached工具类
- */
- public class MemcachedUtils {
- static MemCachedClient client = null;
- static String[] connectUrls = new String[]{"127.0.0.1:11211"};
- static {
- String[] attr = connectUrls;
- client = new MemCachedClient();
- //获取连接池的单态方法
- SockIOPool pool = SockIOPool.getInstance();
- //获得Memcached服务器的地址
- pool.setServers(attr);
- //设置每个Memcached服务器的权重
- pool.setWeights(new Integer[]{3});
- //连接池的配置
- pool.setInitConn(5);
- pool.setMinConn(5);//最小个数
- pool.setMaxConn(200);//最大格式
- pool.setMaxIdle(1000 * 30 * 30);//空闲等待时间
- pool.setMaintSleep(30);//连接池维护线程的等待时间
- pool.setNagle(false);//不启用nagel算法
- pool.setSocketConnectTO(30);//超时等待时间
- pool.initialize();//初始化
- }
- public static void add(String key, Object object) {
- client.set(key, object);//通过键值对存放数据
- }
- public static void del(String key) {
- client.delete(key);//删除数据
- }
- public static Object get(String key) {
- return client.get(key);//获取数据
- }
- //测试Memcached
- public static void main(String args[]) {
- List<String> name = new ArrayList<String>();
- name.add("1111");
- name.add("2222");
- name.add("3333");
- name.add("4444");
- name.add("5555");
- name.add("6666");
- add("name", name);//添加数据到Memcached
- List<String> test = (List<String>) get("name");//从Memcached中读取数据
- System.out.print(test);//打印数据
- }
- }
收藏栏的Servlet(对商品进行收藏的操作)代码如下:
附加:memcached win10下的使用方式:
首先,下载memcached:
memcached <1.4.5 版本安装
1、解压下载的安装包到指定目录。
2、在 1.4.5 版本以前 memcached 可以作为一个服务安装,使用管理员权限运行以下命令:
c:\memcached\memcached.exe -d install
注意1:你需要使用真实的路径替代 c:\memcached\memcached.exe。
注意2:提示下面的错误的解决方案:找到cmd.exe以管理员的身份运行就可以了,(下面的错误是因为没有权限)。

3、然后我们可以使用以下命令来启动和关闭 memcached 服务:
c:\memcached\memcached.exe -d start
c:\memcached\memcached.exe -d stop
注:查看是否启动成功,在命令行中输入如下代码:

回车后运行效果如下:红框中11211(11211为memcached的IP)端口被监听,表示启动成功。

4、如果要修改 memcached 的配置项, 可以在命令行中执行 regedit.exe 命令打开注册表并找到 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached" 来进行修改。
如果要提供 memcached 使用的缓存配置 可以修改 ImagePath 为:
"c:\memcached\memcached.exe" -d runservice -m 512 注:-m 512 意思是设置 memcached 最大的缓存配置为512M。
此外我们还可以通过使用 "c:\memcached\memcached.exe -h" 命令查看更多的参数配置。
5、如果我们需要卸载 memcached ,可以使用以下命令:
c:\memcached\memcached.exe -d uninstall