Memcached 简单利用和简单了解(Mac的安装和使用)
Memcached 是一种用于分布式应用的一种缓存机制。应用也比较广泛。这里来学习一下。
首先Memcached 是分布式网站架构都需要用到的缓存机制。缓存就是服务器利用多余的空间上开辟了一个储存空间,在这片储存区域中,我们放入key-value形式的数据。这样的话,前端发来的请求在这片缓存中如果可以得到解决,就不要去访问数据库了。在Web中,最耗费时间的操作就是去数据库中查询,取出数据。如果一个界面,每次都要加载固定的信息,这些信息储存在数据库中,那么每次很多用户同时加载,就要耗费很长时间,但是把这些数据放到缓存里面,每次拿去就很快,因为Memcached的效率是O(1)的。
好的,初步了解之后,就可以安装和使用了。
下面是Mac的安装方法:
用最简单的homebrew 来安装Memcached 十分的方便。
执行 brew install memcached 静静的等待安装成功就好了。
接下来在终端之中启动memcached
启动memcached 命令参数如下
memcached 启动服务器
-p 监听的端口
-l 连接的ip地址,默认是本机
-d start 启动memcached服务
-d stop|shutdown 关闭和正在运行的memcached服务
-d install 安装memcached服务
-u 以root身份运行
-m 最大内存的实用, 单位MB
-c 最大同时连接数
-h 显示帮助
telnet 127.0.0.1 11211
连接服务。
我们可以用memcached 几个简单命令:
<command> <key> <flags> <time> <bytes>
<value>
command: set, add , replace
key : 健值
flags :健值对的整型参数,客户机使用它储存键值对的额外信息
time: 在缓冲中保存的时间,0代表永远
bytes : 在缓冲中的字节点
value : 储存的值
实际的例子:
那么如何在程序中使用呢?网上有两种版本,第一种版本
首先我们需要下载
java_memcached-release_2.5.3.jar
导入之后:
package com.memcached; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool;
import com.sun.istack.internal.Pool;
import bean.testbean; public class Memcached { protected static MemCachedClient mcc = new MemCachedClient(); static{
//设置缓存服务器列表
String[] servers = { "192.168.1.117:11211" }; // 创建一个Socked连接池实例
SockIOPool pool = SockIOPool.getInstance(); Integer[] weights={3};
// 向连接池设置服务器和权重
pool.setServers(servers);
pool.setWeights(weights); pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0); // initialize the connection pool
pool.initialize(); } public static void main(String args[]){ testbean bean=new testbean();
bean.setName("lulu");
bean.setSex("girl"); mcc.set("person", bean); mcc.set("name","chenyongkang"); testbean b =(testbean)mcc.get("person"); System.out.println("姓名:"+mcc.get("name"));
System.out.println("名字"+b.getName()+" 性别:"+b.getSex());
} }
这里,memcached 也可以储存bean实体类。
实体类:
package bean;
import java.io.Serializable; public class testbean implements Serializable{ private String name;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
} }
上面都是memcached 基本安装和使用。
那么如果我们在分布式架构中怎么使用呢?
这篇博客是一个很好的介绍:
http://blog.csdn.net/lulidaitian/article/details/51712893
1. 首先我们要知道memcached 的优势在哪里?如果单独一台服务器,单独的使用了memcached 。那么会得不偿失,速度反而被拖慢了。memcached 的优势是在分布式中。每一个分布式的服务器,都可以用特殊的算法去访问别的服务器中的缓存。这样利用分布式的服务器集群的多余内存,我们就可以发挥memcached的优势,建立一个有效的缓存机制。当然我们需要方法,让每个服务器了解,应该去找哪一台服务器中的缓存。
2.我们需要知道哪些数据可以用memcached缓存。
缓存只是用来储存常用信息,固定的信息。不要把数据库表整个存在缓存中,那样不是缓存的初衷,很多数据库也提供了缓存机制,所以无需用memcached.
Memcached 简单利用和简单了解(Mac的安装和使用)的更多相关文章
- Mac怎么安装Windows10
当前 Windows10 系统的预览版已经出来,对于新系统感兴趣的不只是使用 PC 电脑的用户,还有一些是当前正在使用 Mac 系统的用户.其实安装 Windows 10 与以前安装 Windows ...
- FOFA爬虫大法——API的简单利用
FOFA是一款网络空间搜索引擎,它通过进行网络空间测绘,帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析.应用分布统计.应用流行度等. 何为API?如果你在百度百科上搜索,你会得到如 ...
- 简单利用Clover四叶草安装U盘安装黑苹果
配置是I5-7600K+技嘉Z270X-UD3+GTX 1050+简单利用Clover四叶草安装U盘安装黑苹果 <ignore_js_op><ignore_js_op> 成功黑 ...
- PHP简单利用token防止表单重复提交
<?php /* * PHP简单利用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_S ...
- PHP简单利用token防止表单重复提交(转)
<?php/* * PHP简单利用token防止表单重复提交 */function set_token() { $_SESSION['token'] = md5(microtime(true)) ...
- MAC Homebrew安装和简单使用
前言: 这个周六日在刚刚买的macbookpro(系统版本是:10.13.5)上面安装angular,一开始是按照windows上的顺序安装的,先安装node.js,然后在安装angular的时候报错 ...
- mac上安装mongoDb以及简单使用
年初粗略学习了下node,这好几个月没玩,突然发现已经忘完了,还是简单记录下基本知识,方便再次使用时资料查找. 一.mongoDb安装 在mac上安装了brew的情况下,可以直接执行命令 brew i ...
- Mac上安装配置Go语言,其实很简单(一)
下载Go语言可以去:Go语言中文网 安装及自己选择是否修改GOPATH 下载下来后双击安装就好,使用 go version 查看安装版本: 在Mac上安装完成后,会自动设置一些环境变量,使用 go e ...
- 简单利用XSS获取Cookie信息实例演示
简单利用XSS获取Cookie信息实例演示 首先要找到一个有XXS的站,这里就不整什么大站了,谷歌一下inurl:'Product.asp?BigClassName',搜出来的命中率也比较高.随便 ...
随机推荐
- Linux中实现多网卡绑定总结
在Linux中实现多网卡绑定 一.原理介绍: 1.什么是bonding? Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用.用于网络负载均衡及网络冗余: Li ...
- Java终止循环体
编写程序,是先创建一个字符串数组,在使用foreach语句遍历时,如果发现数组中包含字符串“老鹰”则立刻中断循环.再创建一个整数类型的二维数组,使用双层foreach语句循环遍历,当发现第一个小于60 ...
- 常用CSS备忘
1 怎样让div中的img居中 水平居中:div设置:text-align:center; img设置:width:图片宽度; margin:0 auto; 垂直居中:div设置:position:r ...
- Linux oracle数据库创建表空间、用户并赋予权限
管理员用户登录oracle数据库 1.创建临时表空间 select name from v$tempfile;查出当前数据库临时表空间,主要是使用里面的存放路径: 得到其中一条记录/opt/oracl ...
- Python 文件学习笔记
程序1 在上一题的基础上扩展,用户可以随意输入要显示的行数. 如输入2:5表示打印第2行到第5行的内容: 输入:2表示打印从开头到第2行的内容: 输入4:表示打印从第4行到结尾的内容: 输入:表示打印 ...
- 【代码审计】CmsEasy_v5.7 代码执行漏洞分析
0x00 环境准备 CmsEasy官网:http://www.cmseasy.cn/ 网站源码版本:CmsEasy_v5.7_UTF8-0208 程序源码下载: http://ftp.cmseas ...
- js中的假值
undefined null 0 NaN 空字符串
- codeforces水题100道 第二十四题 Codeforces Beta Round #85 (Div. 2 Only) A. Petya and Strings (strings)
题目链接:http://www.codeforces.com/problemset/problem/112/A题意:忽略大小写,比较两个字符串字典序大小.C++代码: #include <cst ...
- 配置React Native环境及解决运行异常
一. 安装Homebrew: Homebrew的官网(多语言版本)简单明了地介绍了如何安装和使用这个工具,;并提供了自己的Wiki. brew的安装很简单,使用一条ruby命令即可,Mac系统上已经默 ...
- 网络编程之HttpClient类(转)
12.2 网络编程之HttpClient类 除了可以使用HttpWebRequest类来实现HTTP网络请求之外,我们还可以使用HttpClient类来实现.对于基本的请求操作,HttpClient类 ...