设为首页 收藏本站
查看: 1427|回复: 0

[经验分享] 用FreeBSD与memcached建立分布式缓存服务器全程记录之memcached使用与安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-31 13:42:29 | 显示全部楼层 |阅读模式
1、memcached安装
yihui#cd /usr/ports/databases/memcached
  yihui#make install clean
  

用pkg_info就可以看到已经安装的包列表里有"memcached-1.2.3     High-performance distributed memory object cache system"


2、memcached 运行

memcached <选项>
-d  以daemon方式运行(类似windows下的后台服务),如果不指定此项,控制台将停在那里直到你停止memcached的运行(ctrl+c)
-l 指定可以访问缓存服务的IP地址,不指定则为本地所有IP.类似iis里对网站访问的限制
-p <tcp portnum>  指定用来监听的TCP端口,缺省为11211
-u root 指定运行它的用户名.一般不用,但如果你当前登录的是root用户,则必须指定这选项,建议不要用以root用户运行
-U <udp portnum> 指定用来监听的UDP端口,缺省为11211,注意是大写
-m <num> 指定最大用多少内存,单位是M,缺省为64M

最简单的运行:memcached -d,以daemon方式运行,并监听所有IP的TCP11211端口.
最常用的运行:memcached -d -p 11211 -m 2048 ,用2G内存(自定),既然用作缓存服务器,当然内存要指定越大好!

查看是否在运行
ps -axu | grep memcached

telnet 10.0.5.115 11211,连上了就表示成功了,可以进行下一步了.

停止运行:遗憾哪,我不知道如何停止它的运行,我只会用
ps -axu | grep memcached,得到进程号,然后kill 进程号的强制方式来禁止.

3、下载c#客户端

  • https://sourceforge.net/projects/memcacheddotnet/
  • http://www.codeplex.com/EnyimMemcached/ - Client developed in .NET 2.0 keeping performance and extensibility in mind. (Supports consistent hashing.)
  • http://code.google.com/p/beitmemcached/ - 推荐,可以区分多个实例,自动序列化对象
  这三个客户端API,每个都是一个vs 2005工程,最好都下载了看一下,当然你们也可以加以修改,比如将里的hash算法改为一致性hash算法(哪位改了的请给我一份)。
  
  示例代码(下载来的里与这差不多,我加了一个复杂的类对象测试):


DSC0000.gif DSC0001.gif BeITMemcached 示例Code
using System;
using System.Collections.Generic;


namespace BeIT.MemCached {
    class Example {
      
        [Serializable]
        public class ab{
        public string a;
            public int b;
            public abs absss;
        }
        [Serializable]
        public class abs{
            public string aaa="";
        }
        public static void Main(string[] args) {

            //初始化服务器池,需要指定实例名及服务器组
            //实例名主要是为了方便将应用程序需要缓存的数据进行分类,这样可以方便管理,提高性能
            //例如可以session 存在一组memcached服务器,用户数据放在另一组服务器
            //服务器是逻辑概念,IP+PORT即代表一个.
            MemcachedClient.Setup("MyCache", new string[] { "10.0.5.115:11211" });
            MemcachedClient.Setup("MyOtherCache", new string[] { "10.0.5.115:11212", "10.0.5.115:11213" });

            MemcachedClient cache2 = MemcachedClient.GetInstance("MyCache");

            cache2.SendReceieveTimeout = 5000;
            cache2.MinPoolSize = 1;//最小的socket连接池尺寸
            cache2.MaxPoolSize = 5;//最大的socket连接池尺寸

            Console.Out.WriteLine("Storing some items.");
            cache2.Set("mystring", "The quick brown fox jumped over the lazy dog.");
            cache2.Set("myarray", new string[] { "This is the first string.", "This is the second string." });
            cache2.Set("myinteger", 4711);
            cache2.Set("mydate", new DateTime(2008, 02, 23));

            ab obj=new ab();
            obj.a="sdfasdfasfdda中华人民共和国中华人民共和国 ";
            obj.b=435;
            obj.absss=new abs();
            obj.absss.aaa="adfasdfasdfas";
            cache2.Set("myobj",obj);

            //Get a string
            string str2 = cache2.Get("mystring") as string;
            string[] array2 = cache2.Get("myarray") as string[];
            object[] result2 = cache2.Get(new string[] { "myinteger", "mydate" });//一次取得多个键值

            ab obj2=cache2.Get("myobj") as ab;

            Console.WriteLine(str2);
            Console.WriteLine(array2[0]);
            Console.WriteLine(((DateTime)(result2[1])).ToString());
            Console.WriteLine(obj2.a);
            Console.WriteLine(obj2.absss.aaa);

            Console.ReadLine();
            return;
        }
    }
}  
  这几篇文档可能让来的朋友失望了,由于初次写东西水平有限,请大家原谅!
  现在此抛砖引玉,希望能引起大家的兴趣,可以在此交流,共同学习。我也会随着实践与不断的学习,陆续记录自己的体验及心得!
  

  另,这几天我深刻的体会到写blog的确可以加深自己的理解和记忆,大家是否也有同感?
  
  一挥随笔(http://www.cnblogs.com/yihuiso),转载请留下此信息!
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106853-1-1.html 上篇帖子: Memcached入门 下篇帖子: centos下memcache和memcached的安装和使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表