Memcached初探
2019獨角獸企業重金招聘Python工程師標準>>>
初探的意思就是裝起來玩兒一把,最簡單的,所以這里寫的東西不一定對,小心!
1. install
2. simple client call
-------1--------
裝Memcached必須先裝Libevent。 下面是在mac上用brewhome裝的,簡單。相信自己手動裝的話也難度不大。
Libevent - brew install libevent -?/usr/local/Cellar/libevent/2.0.21_1
Memcached - brew install memcached - /usr/local/Cellar/memcached/1.4.20
根其他很多軟件如maven,ant之類的一樣,安裝好的目錄下面有bin目錄。進去執行如下命令運行即可。
Running Memcached:
Go to memcached install path/bin$?
sudo ./memcached -p 11212 -m 64 -u root -vv?
sudo?./memcached?-p?11211?-m?64?-u?root?-d
第二行意思是以關掉命令行也不會關掉Memecached。
命令的參數能猜個大概:
-p port
-m memory size(MB)
-u user
后面的自己查吧
--------2--------
memcached運行好在那邊之后,就在那邊孤獨的運行著了。 Memcached是和語言無關的,也就是說java,php什么的都可以調用它。所以,調用它的client端有很多實現。這里的簡單例子是用的google的xmemcached
| <!--?xmemcached?-?https://code.google.com/p/xmemcached/?--><dependency><groupId>com.googlecode.xmemcached</groupId><artifactId>xmemcached</artifactId><version>2.0.0</version></dependency> |
| 貼代碼這種方式不是太好,貼個小片段 |
| public?void?testXmemcachedSimple()?throws?Exception?{MemcachedClient?client?=?new?XMemcachedClient("localhost",?11212);String?inputString?=?"Hello?Memcached!";//?store?a?value?for?one?hour(synchronously).client.set("key",?3600,?inputString);//?Retrieve?a?value.(synchronously).Object?someObject?=?client.get("key");//?Retrieve?a?value.(synchronously),operation?timeout?two?seconds.someObject?=?client.get("key",?2000);System.out.println("someObject?:?"?+?someObject);//?Touch?cache?item?,update?it's?expire?time?to?10?seconds.boolean?success?=?client.touch("key",?10);System.out.println("success?:?"?+?success);//?delete?valueclient.delete("key");} |
| 這里只是最簡單的調用方式,可以有pool連接,同時連接多臺memcached服務器等。 |
| google鏈接里所有的例子都有,很簡單,但是考慮到在墻內登陸不方便,所以這里貼一點意思一下。 鏈接:https://code.google.com/p/xmemcached/ |
Memcached可以支持分布式部署,但是它們之間不是做數據同步的。而是對Client端來說是同一個而已。所以update持久化的數據必須同時update cacahe中的。
Spring 配置:
<bean?name="memcachedClient"class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean"?destroy-method="shutdown"><property?name="servers"><value>localhost:11212?192.168.234.81:11212</value></property><!--?server's?weights?--><property?name="weights"><list><value>1</value><value>2</value></list></property><!--?nio?connection?pool?size?--><property?name="connectionPoolSize"?value="3"></property><!--?Use?binary?protocol,default?is?TextCommandFactory?--><property?name="commandFactory"><bean?class="net.rubyeye.xmemcached.command.BinaryCommandFactory"></bean></property><!--?Distributed?strategy?--><property?name="sessionLocator"><bean?class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"></bean></property><!--?Serializing?transcoder?--><property?name="transcoder"><bean?class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder"?/></property><!--?ByteBuffer?allocator?--><property?name="bufferAllocator"><bean?class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"></bean></property></bean>更深層次的用法就不會了^_^
轉載于:https://my.oschina.net/joryqiao/blog/348669
總結
以上是生活随笔為你收集整理的Memcached初探的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu1978(递推dp)
- 下一篇: ecshop的几个小瑕疵