One, storage command
Format of the stored command:
1 2 |
<command name> <key> <flags> <exptime> <bytes> <data block> |
The parameters are described as follows:
<command name> |
Set/add/replace |
<key> |
Find keywords |
<flags> |
The client uses it to store extra information about key-value pairs |
<exptime> |
The survival time of this data, 0 means forever |
<bytes> |
Number of bytes stored |
<data block> |
Stored data blocks (can be directly understood as value in the key-value structure) |
1. Add
(1), the set that is stored anyway
This set command is used very frequently in memcached. The set command can not only be added simply, if the set key already exists, the command can update the key corresponding to the original data, that is, to achieve the role of the update.
You can view the added records in the form of "Get Key Name":
As you know, we can also remove the Delete command and add it again.
(2), add only when data does not exist
(3) Replace when the data is present
2. Delete
As you can see, deleting a key value that already exists and a record that does not exist can return different results.
Second, read the command1. Get
The key of the GET command can represent one or more keys, separated by a space
2, gets
As you can see, the GET command returns a number (medium 13) More than the normal gets command. This number checks to see if the data has changed. When the data corresponding to the key changes, the number returned will also change.
3. CAs
CAS is the meaning of checked and set, which can only be stored if the last parameter matches the parameters obtained by the GET, otherwise "EXISTS" is returned.
iii. Status Commands1, stats
2. Stats Items
Perform stats items, you can see the stat items row, and if memcached stores a lot of content, there will also be a lot of stat items listed here.
3, stats cachedump slab_id limit_num
We perform the stats cachedump 1 0 command effect as follows:
The slab_id here is 1, which is determined by the results returned by the stats items in 2 (the number following the STAT items); Limit_num looks like it's going to return as many records as it's worth, but 0 means it shows all the records, and N (n>0) Indicates that N records are displayed, and if n exceeds all records under the slab, the result is the same as the result returned by 0.
Limit_num records can be traversed by stats items, stats cachedump slab_id memcached with the Get command.
4. Other Stats Commands
such as stats slabs,stats sizes,stats Reset, etc. use is also more common.
iv. Other common commands1, append
Add the cached data after the existing cache data, such as the existing cache key does not exist for the server response as not_stored.
2, Prepend
is very similar to append, but it is useful for adding cached data before existing cache data.
3, Flush_all
The command has an optional numeric parameter. It always executes successfully and the server sends a "ok\r\n" response. The effect is to invalidate an existing project immediately (the default), or after a specified time. After that the FETCH command is executed and nothing is returned (unless the same key name is re-stored). Flush_all actually does not immediately release the memory occupied by the project, but is executed later when new items are stored (this is determined by memcached's lazy detection and deletion mechanism).
The Flush_all effect is that it causes all items to be updated earlier than the time set by Flush_all, and the command is ignored when the FETCH command is executed.
4. Other Commands
Memcached also has a lot of commands, such as the storage of digital type can be used by the INCR/DECR command to increase or decrease operations, and so on, here only the development and operation of the regular use of commands, the other no longer one by one examples.
add: A simple understanding of several caches in the. NET Framework
The importance of caching in a Web site is beyond doubt. I think many ASP. NET developers prefer to use a cache that is not a third-party caching solution (such as distributed cache memcached, Redis, and so on) when developing Web applications, but should be a variety of caching solutions already available in the. Network framework. Let's talk about the understanding of caching in the. NET Framework in the context of your own development experience.
1, System.Web.Caching.Cache
It is estimated that most of the people who have done the ASP have used the cache under this namespace, and we can use the HttpContext.Current.Cache instance directly without instantiating it. Of course, the cache class under this namespace allows you to instantiate, and of course you can completely control how to initialize this class by customizing your own caching system. I've seen a lot of articles in the garden. The CRUD auxiliary class libraries that introduce the Cache are mostly for System.Web.Caching.Cache.
It should be explained that we can also use the Httpruntime.cache under this namespace to implement caches in different representations of the Web, console, WinForm, and so on, without having to instantiate them at all. Httpruntime.cache is one of the more used classes in personal development, and now prefers the enhanced cache class MemoryCache in. NET framework4.0.
2. Output Cache
As we all know, output cache is mainly paged out cache and page partial cache. Plainly, is to cache the entire page of HTML or part of the HTML, there is nothing worth discussing, but recently saw Dudu this blog just suddenly discovered, unexpectedly use it is really very fastidious, I did not find this problem before? It seems that the ability to find and solve problems is equally important, and sometimes the former is even more important.
3, System.Runtime.Caching
Now the most used class memorycache in personal development is derived from this namespace, and the using System.Runtime.Caching is required before use. MemoryCache inherits from ObjectCache, IEnumerable, IDisposable, where ObjectCache is an abstract class. People who have used MemoryCache know that this memorycache has a property called default, which can usually be used as follows:
Private Static ObjectCache MemCache = Memorycache.default;
Of course we can also initialize the cache object through the public memorycache (string name, NameValueCollection config = null) constructor.
Then we can configure the memory usage quota scheme and the quota check cycle for each MemoryCache instance running in the Web. config file, the following example references MSDN:
<system.runtime.caching> <MemoryCache> <namedcaches> <Addname= "Default"cachememorylimitmegabytes= "Ten"PollingInterval= "00:02:00"/> </namedcaches> </MemoryCache> </system.runtime.caching>
These configuration implications lie in the ability to explicitly specify the memory usage quota scheme and the quota check cycle that each MemoryCache instance runs. For example, we can configure to change the memory quota of the Memorycache.default instance on demand (not knowing how much memory is available for the cache, perhaps the legendary 800M or so). The cache expiration policy is much the same as its cache framework, unlike System.Web.Caching.Cache, whose name is not cachedependency but called ChangeMonitor, and provides a file-and directory-based cache dependency policy. The cache expiration policy is also more important to explore, but in personal development more emphasis on data caching and replacement, there is no contact and use of a more perfect expiration policy solution.
Transferred from: http://www.cnblogs.com/jeffwongishandsome/archive/2011/11/06/2238265.html
Go memcached Common commands and instructions for use