This recipe is designed for quick comparison and validation of memcached clients. It can be considered a good, but certainly not thorough microbenchmark. The intent with the recipe is not to denegrate any particular client, but rather to show what clients are capable of. There are a number of native, high level language clients which have more than enough performance for many applications, but are not nearing the limits of the server capabilities and/or the client platform capabilities. The recipe is as follows: 0. Start four servers on different ports, each with 64MByte of cache. 1. Do a basic server load. Load approximately 10,000 items, sizes varying between 1KByte and 1MByte. The key of the item contains the MD5 of the randomly generated bytes in the value. The items must be up to 1000 unique actual data items, pregenerated so as to not affect the wall clock time. 2. Stop all workload. 3. Start getting keys and validating MD5 from at least two separate threads or processes. Pseudorandomly select keys to fetch. 4. Discard the data for the first 5 seconds. Run for 60 more seconds counting the throughput (i.e. get operations/sec) 5. Report the results. Future enhancements could include other kinds of operations and/or a less random (and therefore more application like) distribution of operations. License is CDDL, meaning any modifications to CDDL files must be recontributed. Changelog 20091207 first work on the PHP client