vinted-memcached 1.8.3 → 1.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_release_pipeline.yaml +53 -0
  3. data/.gitignore +33 -0
  4. data/BENCHMARKS +130 -126
  5. data/CHANGELOG +1 -6
  6. data/Gemfile +8 -1
  7. data/Gemfile.lock +25 -25
  8. data/README.md +144 -0
  9. data/Rakefile +21 -93
  10. data/ext/rlibmemcached/extconf.rb +76 -0
  11. data/ext/{rlibmemcached.i → rlibmemcached/rlibmemcached.i} +48 -63
  12. data/ext/{rlibmemcached_wrap.c → rlibmemcached/rlibmemcached_wrap.c} +629 -612
  13. data/lib/memcached/exceptions.rb +1 -12
  14. data/lib/memcached/experimental.rb +1 -33
  15. data/lib/memcached/memcached.rb +41 -34
  16. data/lib/memcached/version.rb +1 -1
  17. data/lib/memcached.rb +9 -4
  18. data/memcached.gemspec +0 -0
  19. data/memcached.pem +21 -0
  20. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_connect.c +23 -13
  21. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_io.c +18 -13
  22. data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_purge.c +1 -1
  23. metadata +193 -233
  24. data/Manifest +0 -209
  25. data/README.rdoc +0 -124
  26. data/ext/extconf-make.rb +0 -25
  27. data/ext/extconf.rb +0 -78
  28. data/lib/memcached/auth.rb +0 -16
  29. data/test/profile/benchmark.rb +0 -280
  30. data/test/profile/c_profiler.rb +0 -14
  31. data/test/profile/exercise.rb +0 -185
  32. data/test/profile/rb_profiler.rb +0 -21
  33. data/test/profile/valgrind.rb +0 -10
  34. data/test/setup.rb +0 -30
  35. data/test/teardown.rb +0 -0
  36. data/test/test_helper.rb +0 -18
  37. data/test/unit/binding_test.rb +0 -8
  38. data/test/unit/memcached_experimental_test.rb +0 -272
  39. data/test/unit/memcached_test.rb +0 -1487
  40. data/test/unit/rails_test.rb +0 -330
  41. /data/{ext → vendor}/libmemcached-0.32/AUTHORS +0 -0
  42. /data/{ext → vendor}/libmemcached-0.32/COPYING +0 -0
  43. /data/{ext → vendor}/libmemcached-0.32/ChangeLog +0 -0
  44. /data/{ext → vendor}/libmemcached-0.32/INSTALL +0 -0
  45. /data/{ext → vendor}/libmemcached-0.32/Makefile.am +0 -0
  46. /data/{ext → vendor}/libmemcached-0.32/Makefile.in +0 -0
  47. /data/{ext → vendor}/libmemcached-0.32/NEWS +0 -0
  48. /data/{ext → vendor}/libmemcached-0.32/README +0 -0
  49. /data/{ext → vendor}/libmemcached-0.32/THANKS +0 -0
  50. /data/{ext → vendor}/libmemcached-0.32/TODO +0 -0
  51. /data/{ext → vendor}/libmemcached-0.32/aclocal.m4 +0 -0
  52. /data/{ext → vendor}/libmemcached-0.32/clients/Makefile.am +0 -0
  53. /data/{ext → vendor}/libmemcached-0.32/clients/Makefile.in +0 -0
  54. /data/{ext → vendor}/libmemcached-0.32/clients/client_options.h +0 -0
  55. /data/{ext → vendor}/libmemcached-0.32/clients/execute.c +0 -0
  56. /data/{ext → vendor}/libmemcached-0.32/clients/execute.h +0 -0
  57. /data/{ext → vendor}/libmemcached-0.32/clients/generator.c +0 -0
  58. /data/{ext → vendor}/libmemcached-0.32/clients/generator.h +0 -0
  59. /data/{ext → vendor}/libmemcached-0.32/clients/memcat.c +0 -0
  60. /data/{ext → vendor}/libmemcached-0.32/clients/memcp.c +0 -0
  61. /data/{ext → vendor}/libmemcached-0.32/clients/memdump.c +0 -0
  62. /data/{ext → vendor}/libmemcached-0.32/clients/memerror.c +0 -0
  63. /data/{ext → vendor}/libmemcached-0.32/clients/memflush.c +0 -0
  64. /data/{ext → vendor}/libmemcached-0.32/clients/memrm.c +0 -0
  65. /data/{ext → vendor}/libmemcached-0.32/clients/memslap.c +0 -0
  66. /data/{ext → vendor}/libmemcached-0.32/clients/memstat.c +0 -0
  67. /data/{ext → vendor}/libmemcached-0.32/clients/utilities.c +0 -0
  68. /data/{ext → vendor}/libmemcached-0.32/clients/utilities.h +0 -0
  69. /data/{ext → vendor}/libmemcached-0.32/config/compile +0 -0
  70. /data/{ext → vendor}/libmemcached-0.32/config/config.guess +0 -0
  71. /data/{ext → vendor}/libmemcached-0.32/config/config.rpath +0 -0
  72. /data/{ext → vendor}/libmemcached-0.32/config/config.sub +0 -0
  73. /data/{ext → vendor}/libmemcached-0.32/config/depcomp +0 -0
  74. /data/{ext → vendor}/libmemcached-0.32/config/install-sh +0 -0
  75. /data/{ext → vendor}/libmemcached-0.32/config/ltmain.sh +0 -0
  76. /data/{ext → vendor}/libmemcached-0.32/config/missing +0 -0
  77. /data/{ext → vendor}/libmemcached-0.32/config.h.in +0 -0
  78. /data/{ext → vendor}/libmemcached-0.32/configure +0 -0
  79. /data/{ext → vendor}/libmemcached-0.32/configure.ac +0 -0
  80. /data/{ext → vendor}/libmemcached-0.32/libmemcached/Makefile.am +0 -0
  81. /data/{ext → vendor}/libmemcached-0.32/libmemcached/Makefile.in +0 -0
  82. /data/{ext → vendor}/libmemcached-0.32/libmemcached/byteorder.c +0 -0
  83. /data/{ext → vendor}/libmemcached-0.32/libmemcached/common.h +0 -0
  84. /data/{ext → vendor}/libmemcached-0.32/libmemcached/crc.c +0 -0
  85. /data/{ext → vendor}/libmemcached-0.32/libmemcached/hsieh_hash.c +0 -0
  86. /data/{ext → vendor}/libmemcached-0.32/libmemcached/jenkins_hash.c +0 -0
  87. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached.ver +0 -0
  88. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached_probes.d +0 -0
  89. /data/{ext → vendor}/libmemcached-0.32/libmemcached/libmemcached_probes.h +0 -0
  90. /data/{ext → vendor}/libmemcached-0.32/libmemcached/md5.c +0 -0
  91. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached/README.txt +0 -0
  92. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +0 -0
  93. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.c +0 -0
  94. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.h +0 -0
  95. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached.hpp +0 -0
  96. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_allocators.c +0 -0
  97. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_analyze.c +0 -0
  98. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_auto.c +0 -0
  99. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_behavior.c +0 -0
  100. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_callback.c +0 -0
  101. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_configure.h.in +0 -0
  102. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_constants.h +0 -0
  103. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  104. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_do.c +0 -0
  105. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_dump.c +0 -0
  106. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_exist.c +0 -0
  107. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_exist.h +0 -0
  108. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_fetch.c +0 -0
  109. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_flush.c +0 -0
  110. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +0 -0
  111. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_get.c +0 -0
  112. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_get.h +0 -0
  113. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_hash.c +0 -0
  114. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_hosts.c +0 -0
  115. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_internal.h +0 -0
  116. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_io.h +0 -0
  117. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_key.c +0 -0
  118. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_parse.c +0 -0
  119. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_pool.h +0 -0
  120. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_quit.c +0 -0
  121. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_response.c +0 -0
  122. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_result.c +0 -0
  123. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_result.h +0 -0
  124. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_sasl.c +0 -0
  125. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_sasl.h +0 -0
  126. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_server.c +0 -0
  127. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_server.h +0 -0
  128. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_stats.c +0 -0
  129. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_storage.c +0 -0
  130. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_storage.h +0 -0
  131. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_strerror.c +0 -0
  132. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_string.c +0 -0
  133. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_string.h +0 -0
  134. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_touch.c +0 -0
  135. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_touch.h +0 -0
  136. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_types.h +0 -0
  137. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_util.h +0 -0
  138. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_verbosity.c +0 -0
  139. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_version.c +0 -0
  140. /data/{ext → vendor}/libmemcached-0.32/libmemcached/memcached_watchpoint.h +0 -0
  141. /data/{ext → vendor}/libmemcached-0.32/libmemcached/murmur_hash.c +0 -0
  142. /data/{ext → vendor}/libmemcached-0.32/libmemcached/visibility.h +0 -0
  143. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/Makefile.am +0 -0
  144. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/Makefile.in +0 -0
  145. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +0 -0
  146. /data/{ext → vendor}/libmemcached-0.32/libmemcachedutil/memcached_pool.c +0 -0
  147. /data/{ext → vendor}/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +0 -0
  148. /data/{ext → vendor}/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +0 -0
  149. /data/{ext → vendor}/libmemcached-0.32/m4/acx_pthread.m4 +0 -0
  150. /data/{ext → vendor}/libmemcached-0.32/m4/byteorder.m4 +0 -0
  151. /data/{ext → vendor}/libmemcached-0.32/m4/deprecated.m4 +0 -0
  152. /data/{ext → vendor}/libmemcached-0.32/m4/enable_utillib.m4 +0 -0
  153. /data/{ext → vendor}/libmemcached-0.32/m4/extensions.m4 +0 -0
  154. /data/{ext → vendor}/libmemcached-0.32/m4/hsieh.m4 +0 -0
  155. /data/{ext → vendor}/libmemcached-0.32/m4/lib-prefix.m4 +0 -0
  156. /data/{ext → vendor}/libmemcached-0.32/m4/libtool.m4 +0 -0
  157. /data/{ext → vendor}/libmemcached-0.32/m4/ltoptions.m4 +0 -0
  158. /data/{ext → vendor}/libmemcached-0.32/m4/ltsugar.m4 +0 -0
  159. /data/{ext → vendor}/libmemcached-0.32/m4/ltversion.m4 +0 -0
  160. /data/{ext → vendor}/libmemcached-0.32/m4/lt~obsolete.m4 +0 -0
  161. /data/{ext → vendor}/libmemcached-0.32/m4/memcached.m4 +0 -0
  162. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_64bit.m4 +0 -0
  163. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_canonical.m4 +0 -0
  164. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +0 -0
  165. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +0 -0
  166. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +0 -0
  167. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +0 -0
  168. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +0 -0
  169. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_have_sasl.m4 +0 -0
  170. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_header_assert.m4 +0 -0
  171. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_libtool.m4 +0 -0
  172. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_optimize.m4 +0 -0
  173. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_shared_ptr.m4 +0 -0
  174. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_vc_build.m4 +0 -0
  175. /data/{ext → vendor}/libmemcached-0.32/m4/pandora_warnings.m4 +0 -0
  176. /data/{ext → vendor}/libmemcached-0.32/m4/pod2man.m4 +0 -0
  177. /data/{ext → vendor}/libmemcached-0.32/m4/protocol_binary.m4 +0 -0
  178. /data/{ext → vendor}/libmemcached-0.32/m4/setsockopt.m4 +0 -0
  179. /data/{ext → vendor}/libmemcached-0.32/m4/visibility.m4 +0 -0
  180. /data/{ext → vendor}/libmemcached-0.32/support/Makefile.am +0 -0
  181. /data/{ext → vendor}/libmemcached-0.32/support/Makefile.in +0 -0
  182. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached-fc.spec.in +0 -0
  183. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.pc.in +0 -0
  184. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.spec +0 -0
  185. /data/{ext → vendor}/libmemcached-0.32/support/libmemcached.spec.in +0 -0
  186. /data/{ext → vendor}/libmemcached-0.32/support/set_benchmark.sh +0 -0
  187. /data/{ext → vendor}/libmemcached-0.32/tests/Makefile.am +0 -0
  188. /data/{ext → vendor}/libmemcached-0.32/tests/Makefile.in +0 -0
  189. /data/{ext → vendor}/libmemcached-0.32/tests/atomsmasher.c +0 -0
  190. /data/{ext → vendor}/libmemcached-0.32/tests/function.c +0 -0
  191. /data/{ext → vendor}/libmemcached-0.32/tests/ketama_test_cases.h +0 -0
  192. /data/{ext → vendor}/libmemcached-0.32/tests/output.cmp +0 -0
  193. /data/{ext → vendor}/libmemcached-0.32/tests/output.res +0 -0
  194. /data/{ext → vendor}/libmemcached-0.32/tests/output2.res +0 -0
  195. /data/{ext → vendor}/libmemcached-0.32/tests/plus.cpp +0 -0
  196. /data/{ext → vendor}/libmemcached-0.32/tests/r/memcat.res +0 -0
  197. /data/{ext → vendor}/libmemcached-0.32/tests/r/memcp.res +0 -0
  198. /data/{ext → vendor}/libmemcached-0.32/tests/r/memrm.res +0 -0
  199. /data/{ext → vendor}/libmemcached-0.32/tests/r/memslap.res +0 -0
  200. /data/{ext → vendor}/libmemcached-0.32/tests/r/memstat.res +0 -0
  201. /data/{ext → vendor}/libmemcached-0.32/tests/server.c +0 -0
  202. /data/{ext → vendor}/libmemcached-0.32/tests/server.h +0 -0
  203. /data/{ext → vendor}/libmemcached-0.32/tests/start.c +0 -0
  204. /data/{ext → vendor}/libmemcached-0.32/tests/t/memcat.test +0 -0
  205. /data/{ext → vendor}/libmemcached-0.32/tests/t/memcp.test +0 -0
  206. /data/{ext → vendor}/libmemcached-0.32/tests/t/memrm.test +0 -0
  207. /data/{ext → vendor}/libmemcached-0.32/tests/t/memslap.test +0 -0
  208. /data/{ext → vendor}/libmemcached-0.32/tests/t/memstat.test +0 -0
  209. /data/{ext → vendor}/libmemcached-0.32/tests/test.c +0 -0
  210. /data/{ext → vendor}/libmemcached-0.32/tests/test.h +0 -0
  211. /data/{ext → vendor}/libmemcached-0.32/tests/udp.c +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebb503903c65babc319191cf4ffb0798535a54c3a95fe72426a51aac514a4654
4
- data.tar.gz: 4904b11d45beb58f278e01a6fb4c29a8dc11e4a91123df06111d7cf21d2dd733
3
+ metadata.gz: 84d2fdcaeee6f11fc680c1bd7c521b792479fbb06bd4658e0ee5f28b96e27102
4
+ data.tar.gz: 71358e731cb941d7a266fd0f9f652a51fd6cc88ce4e831a1d5edf771dbd35ca3
5
5
  SHA512:
6
- metadata.gz: 4422cb627a78cfbf2810c4b18f2389887c59b99e6bd72d97a5819b6a4d435bc81e7130f32b8ab6509a6b7436fde1e93a90ff1e3ad3f7c440557d6c66518a3a58
7
- data.tar.gz: 05abc7595a174121345252f4828f9999813122d20d1c3ef3bc96f3fa975460b5e82dd7a555863ba17737fab65d3b417d7d0e7726c1244bc6ad434e9526b44581
6
+ metadata.gz: 777bc9327d0e2fdbca3dc4a42a9e738e9a9d46efc25b51e505dc35a798ec22b2aa0e735b8c524139440b5a3dacbab4a2d199ec7704d370250b3b171b9f51b230
7
+ data.tar.gz: bb4ad40bba93f6b69d365e6940639548184251aa1026fa951e7af643bf580032c54d733551e1b2650a6a08832df532bf8edf3179b36244b46446b0232e578ccc
@@ -0,0 +1,53 @@
1
+ name: Build and release ruby gem
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [ 1-0-stable ]
6
+ push:
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ build-release-pipeline:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - run: |
14
+ sudo apt-get update
15
+ sudo apt-get -y install memcached libsasl2-dev
16
+ - uses: actions/checkout@v2
17
+ - uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: '3.0'
20
+ bundler-cache: true
21
+
22
+ - run: bundle exec ruby test/setup.rb
23
+ - run: bundle exec rake
24
+ - name: Build
25
+ id: build
26
+ if: success()
27
+ run: |
28
+ bundle exec rake build
29
+ echo "::set-output name=gem_version::v$(bundle exec rake version)"
30
+
31
+ - name: Release
32
+ if: success() && github.ref == 'refs/heads/1-0-stable'
33
+ run: |
34
+ mkdir -p $HOME/.gem
35
+ touch $HOME/.gem/credentials
36
+ chmod 600 $HOME/.gem/credentials
37
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
38
+ gem push pkg/vinted-memcached-*.gem -V
39
+ env:
40
+ GEM_HOST_API_KEY: "${{ secrets.RUBYGEMS_AUTH_TOKEN }}"
41
+
42
+ - name: Tag repo with new gem version
43
+ if: success() && github.ref == 'refs/heads/1-0-stable'
44
+ uses: actions/github-script@v3
45
+ with:
46
+ github-token: ${{ github.token }}
47
+ script: |
48
+ github.git.createRef({
49
+ owner: context.repo.owner,
50
+ repo: context.repo.repo,
51
+ ref: "refs/tags/${{ steps.build.outputs.gem_version }}",
52
+ sha: context.sha
53
+ })
data/.gitignore ADDED
@@ -0,0 +1,33 @@
1
+ tmp/*
2
+ pkg/*
3
+ *.bundle
4
+ *.[oa]
5
+ *.[sl]o
6
+ *.l[ao]
7
+ *.[1,3]
8
+ .libs
9
+ ext/mkmf.log
10
+ /vendor/libmemcached-*/build
11
+ /vendor/libmemcached-*/**/Makefile
12
+ /vendor/libmemcached-*/autom4te.cache
13
+ /vendor/libmemcached-*/clients/memcat
14
+ /vendor/libmemcached-*/clients/memcp
15
+ /vendor/libmemcached-*/clients/memdump
16
+ /vendor/libmemcached-*/clients/memerror
17
+ /vendor/libmemcached-*/clients/memflush
18
+ /vendor/libmemcached-*/clients/memrm
19
+ /vendor/libmemcached-*/clients/memslap
20
+ /vendor/libmemcached-*/clients/memstat
21
+ /vendor/libmemcached-*/config.h
22
+ /vendor/libmemcached-*/config.log
23
+ /vendor/libmemcached-*/config.status
24
+ /vendor/libmemcached-*/libmemcached/memcached_configure.h
25
+ /vendor/libmemcached-*/libtool
26
+ /vendor/libmemcached-*/stamp*
27
+ /vendor/libmemcached-*/support/libmemcached.pc
28
+ /vendor/libmemcached-*/support/libmemcached-fc.spec
29
+ /vendor/libmemcached-*/tests/atomsmasher
30
+ /vendor/libmemcached-*/tests/startservers
31
+ /vendor/libmemcached-*/tests/testapp
32
+ /vendor/libmemcached-*/tests/testplus
33
+ /vendor/libmemcached-*/tests/udptest
data/BENCHMARKS CHANGED
@@ -2,141 +2,145 @@
2
2
  Here are some benchmark results.
3
3
 
4
4
  You can easily run your own benchmarks, as long as you have memcached itself on your system:
5
- $ ruby -e 'system("ruby #{File.dirname(`gem which memcached`.split("\n").
6
- last)}/../test/profile/benchmark.rb")'
5
+ $ bundle exec rake benchmark
7
6
 
8
7
  == x86-64 OS X
9
8
 
10
- These benchmarks were run on a 64-bit OS X machine, with memcached 1.7.2:
9
+ These benchmarks were run on a 64-bit OS X machine, with memcached 1.4.24:
11
10
 
12
- Darwin Arthurs-MacBook-Pro.local 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64
13
- ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin13.0.0]
11
+ Darwin snowball 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64
12
+ ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-darwin15.0]
13
+ RUBY_ENGINE=ruby
14
+ RUBY_ROOT=/Users/arthurnn/.rubies/ruby-2.1.7
14
15
  RUBYOPT=-rbundler/setup
15
- RUBYLIB=/Users/arthurnn/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib
16
- Ruby 2.0.0p353
17
- Loaded memcached 1.7.2
16
+ RUBYLIB=/Users/arthurnn/.gem/ruby/2.1.7/gems/bundler-1.10.6/lib
17
+ RUBY_VERSION=2.1.7
18
+ Ruby 2.1.7p400
19
+ Loaded memcached 1.8.0
18
20
  Loaded remix-stash 1.1.3
19
21
  Loaded memcache-client 1.8.5
20
- Loaded dalli 2.6.4
21
- PID is 67055
22
+ Loaded dalli 2.7.5
23
+ PID is 25952
22
24
  Loops is 50000
23
25
  Stack depth is 0
24
26
  Small value size is: 19 bytes
25
27
  Large value size is: 4189 bytes
26
28
  user system total real
27
- set: dalli:bin 6.440000 2.910000 9.350000 ( 10.563638)
28
- set: libm:ascii 0.790000 1.800000 2.590000 ( 6.383041)
29
- set: libm:ascii:pipeline 0.190000 0.010000 0.200000 ( 0.202092)
30
- set: libm:ascii:udp 0.550000 0.940000 1.490000 ( 3.119734)
31
- set: libm:bin 0.590000 1.790000 2.380000 ( 6.075610)
32
- set: libm:bin:buffer 0.160000 0.440000 0.600000 ( 0.887930)
33
- set: mclient:ascii 6.280000 3.380000 9.660000 ( 10.730003)
34
- set: stash:bin 3.540000 1.990000 5.530000 ( 9.223562)
35
-
36
- get: dalli:bin 6.680000 3.390000 10.070000 ( 11.180611)
37
- get: libm:ascii 1.070000 1.830000 2.900000 ( 6.305700)
38
- get: libm:ascii:pipeline 1.240000 2.440000 3.680000 ( 7.115719)
39
- get: libm:ascii:udp 0.830000 1.020000 1.850000 ( 3.171187)
40
- get: libm:bin 0.850000 2.290000 3.140000 ( 6.281492)
41
- get: libm:bin:buffer 0.840000 2.600000 3.440000 ( 6.200500)
42
- get: mclient:ascii 8.070000 3.530000 11.600000 ( 12.345600)
43
- get: stash:bin 3.090000 2.100000 5.190000 ( 8.480606)
44
-
45
- get-multi: dalli:bin 5.930000 2.180000 8.110000 ( 8.108164)
46
- get-multi: libm:ascii 0.940000 0.970000 1.910000 ( 2.837050)
47
- get-multi: libm:ascii:pipeline 0.940000 0.970000 1.910000 ( 2.824970)
48
- get-multi: libm:ascii:udp 0.780000 0.610000 1.390000 ( 1.639728)
49
- get-multi: libm:bin 0.750000 1.570000 2.320000 ( 3.138594)
50
- get-multi: libm:bin:buffer 0.770000 1.610000 2.380000 ( 3.192629)
51
-
52
- append: dalli:bin 5.740000 2.980000 8.720000 ( 16.344137)
53
- append: libm:ascii 1.020000 1.950000 2.970000 ( 12.789710)
54
- append: libm:ascii:pipeline 0.230000 0.070000 0.300000 ( 3.346092)
55
- append: libm:ascii:udp 0.770000 1.100000 1.870000 ( 9.013537)
56
- append: libm:bin 0.800000 1.950000 2.750000 ( 12.440546)
57
- append: libm:bin:buffer 0.600000 1.570000 2.170000 ( 4.633185)
58
- append: mclient:ascii 6.330000 3.470000 9.800000 ( 17.164551)
59
-
60
- prepend: dalli:bin 5.710000 2.840000 8.550000 ( 16.196913)
61
- prepend: libm:ascii 1.040000 1.970000 3.010000 ( 13.116495)
62
- prepend: libm:ascii:pipeline 0.230000 0.060000 0.290000 ( 3.606279)
63
- prepend: libm:ascii:udp 0.760000 1.090000 1.850000 ( 10.152684)
64
- prepend: libm:bin 0.790000 1.880000 2.670000 ( 12.556400)
65
- prepend: libm:bin:buffer 0.600000 1.600000 2.200000 ( 5.044049)
66
- prepend: mclient:ascii 6.350000 3.440000 9.790000 ( 17.142962)
67
-
68
- delete: dalli:bin 5.800000 2.980000 8.780000 ( 9.778920)
69
- delete: libm:ascii 1.420000 1.990000 3.410000 ( 6.912480)
70
- delete: libm:ascii:pipeline 0.130000 0.010000 0.140000 ( 0.139597)
71
- delete: libm:ascii:udp 1.050000 1.030000 2.080000 ( 3.356582)
72
- delete: libm:bin 1.350000 1.940000 3.290000 ( 6.627281)
73
- delete: libm:bin:buffer 0.840000 0.900000 1.740000 ( 1.812440)
74
- delete: mclient:ascii 5.980000 3.260000 9.240000 ( 9.918309)
75
-
76
- exist: dalli:bin 6.680000 3.420000 10.100000 ( 11.182683)
77
- exist: libm:ascii 0.580000 1.810000 2.390000 ( 6.127155)
78
- exist: libm:ascii:pipeline 1.110000 2.390000 3.500000 ( 6.927549)
79
- exist: libm:ascii:udp 0.360000 0.920000 1.280000 ( 2.827431)
80
- exist: libm:bin 0.540000 1.760000 2.300000 ( 5.829209)
81
- exist: libm:bin:buffer 0.330000 1.030000 1.360000 ( 1.668925)
82
-
83
- get-missing: dalli:bin 5.800000 2.760000 8.560000 ( 9.562492)
84
- get-missing: libm:ascii 1.500000 1.950000 3.450000 ( 6.884550)
85
- get-missing: libm:ascii:pipeline 1.550000 2.690000 4.240000 ( 7.153775)
86
- get-missing: libm:ascii:udp 1.170000 1.220000 2.390000 ( 3.620543)
87
- get-missing: libm:bin 1.570000 2.520000 4.090000 ( 7.067088)
88
- get-missing: libm:bin:buffer 1.510000 2.690000 4.200000 ( 6.904890)
89
- get-missing: mclient:ascii 6.040000 3.230000 9.270000 ( 9.908836)
90
-
91
- append-missing: dalli:bin 5.830000 3.140000 8.970000 ( 10.275904)
92
- append-missing: libm:ascii 1.750000 2.150000 3.900000 ( 7.840195)
93
- append-missing: libm:ascii:pipeline 0.210000 0.050000 0.260000 ( 0.260620)
94
- append-missing: libm:ascii:udp 1.270000 1.180000 2.450000 ( 3.927083)
95
- append-missing: libm:bin 1.490000 2.080000 3.570000 ( 7.330363)
96
- append-missing: libm:bin:buffer 1.560000 2.520000 4.080000 ( 7.541846)
97
- append-missing: mclient:ascii 6.180000 3.290000 9.470000 ( 10.531754)
98
-
99
- prepend-missing: dalli:bin 5.830000 3.180000 9.010000 ( 10.289729)
100
- prepend-missing: libm:ascii 1.780000 2.210000 3.990000 ( 7.993564)
101
- prepend-missing: libm:ascii:pipeline 0.210000 0.060000 0.270000 ( 0.274244)
102
- prepend-missing: libm:ascii:udp 1.260000 1.190000 2.450000 ( 3.898849)
103
- prepend-missing: libm:bin 1.470000 2.100000 3.570000 ( 7.282732)
104
- prepend-missing: libm:bin:buffer 1.560000 2.540000 4.100000 ( 7.578402)
105
- prepend-missing: mclient:ascii 6.180000 3.280000 9.460000 ( 10.530963)
106
-
107
- exist-missing: dalli:bin 6.000000 3.140000 9.140000 ( 10.188436)
108
- exist-missing: libm:ascii 0.940000 1.990000 2.930000 ( 6.798681)
109
- exist-missing: libm:ascii:pipeline 1.020000 2.390000 3.410000 ( 6.467459)
110
- exist-missing: libm:ascii:udp 0.610000 1.060000 1.670000 ( 3.301365)
111
- exist-missing: libm:bin 0.920000 2.000000 2.920000 ( 6.681597)
112
- exist-missing: libm:bin:buffer 1.040000 2.540000 3.580000 ( 7.287630)
113
-
114
- set-large: dalli:bin 7.100000 3.370000 10.470000 ( 11.795271)
115
- set-large: libm:ascii 0.860000 1.850000 2.710000 ( 6.650196)
116
- set-large: libm:ascii:pipeline 0.300000 0.270000 0.570000 ( 0.586590)
117
- set-large: libm:ascii:udp 0.580000 0.970000 1.550000 ( 3.266937)
118
- set-large: libm:bin 0.630000 1.800000 2.430000 ( 6.203372)
119
- set-large: libm:bin:buffer 0.260000 0.680000 0.940000 ( 1.260024)
120
- set-large: mclient:ascii 6.680000 3.700000 10.380000 ( 11.808357)
121
- set-large: stash:bin 5.080000 2.520000 7.600000 ( 11.345483)
122
-
123
- get-large: dalli:bin 6.740000 3.700000 10.440000 ( 11.605284)
124
- get-large: libm:ascii 1.080000 1.860000 2.940000 ( 6.403185)
125
- get-large: libm:ascii:pipeline 1.200000 2.350000 3.550000 ( 6.870392)
126
- get-large: libm:ascii:udp 0.810000 1.020000 1.830000 ( 3.129513)
127
- get-large: libm:bin 0.810000 2.150000 2.960000 ( 5.941723)
128
- get-large: libm:bin:buffer 0.790000 2.410000 3.200000 ( 5.724441)
129
- get-large: mclient:ascii 8.150000 3.240000 11.390000 ( 12.305832)
130
- get-large: stash:bin 3.140000 2.130000 5.270000 ( 8.635335)
131
-
132
- hash:default 0.330000 0.000000 0.330000 ( 0.328978)
133
- hash:md5 0.630000 0.000000 0.630000 ( 0.631381)
134
- hash:crc 0.380000 0.000000 0.380000 ( 0.376241)
135
- hash:fnv1_64 0.240000 0.000000 0.240000 ( 0.242814)
136
- hash:fnv1a_64 0.250000 0.000000 0.250000 ( 0.245082)
137
- hash:fnv1_32 0.240000 0.000000 0.240000 ( 0.242794)
138
- hash:fnv1a_32 0.250000 0.000000 0.250000 ( 0.245309)
139
- hash:hsieh 0.090000 0.000000 0.090000 ( 0.096613)
140
- hash:murmur 0.150000 0.000000 0.150000 ( 0.145111)
141
- hash:jenkins 0.160000 0.000000 0.160000 ( 0.161225)
142
- hash:none 0.100000 0.000000 0.100000 ( 0.097352)
29
+ set: dalli:bin 6.140000 3.030000 9.170000 ( 11.740703)
30
+ set: libm:ascii 0.510000 1.550000 2.060000 ( 5.540367)
31
+ set: libm:ascii:pipeline 0.200000 0.030000 0.230000 ( 0.242075)
32
+ set: libm:ascii:udp 0.320000 0.660000 0.980000 ( 2.051241)
33
+ set: libm:bin 0.380000 1.500000 1.880000 ( 5.240533)
34
+ set: libm:bin:buffer 0.210000 0.440000 0.650000 ( 1.440736)
35
+ set: mclient:ascii 5.390000 3.330000 8.720000 ( 11.094337)
36
+ set: stash:bin 2.920000 1.920000 4.840000 ( 8.685715)
37
+
38
+ get: dalli:bin 5.830000 3.210000 9.040000 ( 11.292248)
39
+ get: libm:ascii 0.840000 1.800000 2.640000 ( 7.072240)
40
+ get: libm:ascii:pipeline 1.250000 2.860000 4.110000 ( 10.513256)
41
+ get: libm:ascii:udp 0.730000 0.830000 1.560000 ( 3.296948)
42
+ get: libm:bin 0.990000 2.770000 3.760000 ( 8.902650)
43
+ get: libm:bin:buffer 0.910000 3.190000 4.100000 ( 8.130182)
44
+ get: mclient:ascii 6.940000 3.440000 10.380000 ( 12.435542)
45
+ get: stash:bin 2.140000 1.870000 4.010000 ( 7.050235)
46
+
47
+ get-multi: dalli:bin 8.100000 3.560000 11.660000 ( 12.239817)
48
+ get-multi: libm:ascii 0.700000 1.130000 1.830000 ( 2.943079)
49
+ get-multi: libm:ascii:pipeline 0.750000 1.190000 1.940000 ( 3.122714)
50
+ get-multi: libm:ascii:udp 0.610000 0.670000 1.280000 ( 1.546763)
51
+ get-multi: libm:bin 0.920000 2.190000 3.110000 ( 5.223670)
52
+ get-multi: libm:bin:buffer 0.930000 2.220000 3.150000 ( 5.280691)
53
+
54
+ append: dalli:bin 5.870000 3.200000 9.070000 ( 22.472106)
55
+ append: libm:ascii 0.970000 2.150000 3.120000 ( 18.463404)
56
+ append: libm:ascii:pipeline 0.300000 0.040000 0.340000 ( 5.555134)
57
+ append: libm:ascii:udp 0.640000 0.820000 1.460000 ( 9.630847)
58
+ append: libm:bin 0.620000 1.820000 2.440000 ( 14.711178)
59
+ append: libm:bin:buffer 1.170000 3.130000 4.300000 ( 11.960384)
60
+ append: mclient:ascii 7.890000 4.740000 12.630000 ( 29.746835)
61
+
62
+ prepend: dalli:bin 7.260000 3.860000 11.120000 ( 28.830745)
63
+ prepend: libm:ascii 0.900000 1.990000 2.890000 ( 17.160139)
64
+ prepend: libm:ascii:pipeline 0.320000 0.050000 0.370000 ( 5.597601)
65
+ prepend: libm:ascii:udp 0.710000 0.850000 1.560000 ( 12.146740)
66
+ prepend: libm:bin 0.690000 1.920000 2.610000 ( 16.548869)
67
+ prepend: libm:bin:buffer 1.110000 2.990000 4.100000 ( 11.593440)
68
+ prepend: mclient:ascii 6.400000 4.070000 10.470000 ( 24.556245)
69
+
70
+ delete: dalli:bin 5.610000 3.170000 8.780000 ( 11.628410)
71
+ delete: libm:ascii 1.170000 1.980000 3.150000 ( 7.220840)
72
+ delete: libm:ascii:pipeline 0.140000 0.020000 0.160000 ( 0.164323)
73
+ delete: libm:ascii:udp 0.790000 1.060000 1.850000 ( 2.834595)
74
+ delete: libm:bin 0.990000 2.020000 3.010000 ( 6.377224)
75
+ delete: libm:bin:buffer 1.440000 1.980000 3.420000 ( 4.548943)
76
+ delete: mclient:ascii 5.660000 3.680000 9.340000 ( 11.798163)
77
+
78
+ exist: dalli:bin 6.600000 3.760000 10.360000 ( 13.333176)
79
+ exist: libm:ascii 0.470000 1.930000 2.400000 ( 6.562550)
80
+ exist: libm:ascii:pipeline 0.770000 2.500000 3.270000 ( 7.195691)
81
+ exist: libm:ascii:udp 0.250000 0.770000 1.020000 ( 2.093370)
82
+ exist: libm:bin 0.470000 1.980000 2.450000 ( 6.669954)
83
+ exist: libm:bin:buffer 0.490000 1.710000 2.200000 ( 3.794428)
84
+
85
+ get-missing: dalli:bin 5.100000 2.900000 8.000000 ( 10.280236)
86
+ get-missing: libm:ascii 1.120000 1.650000 2.770000 ( 6.234911)
87
+ get-missing: libm:ascii:pipeline 1.240000 2.540000 3.780000 ( 7.179858)
88
+ get-missing: libm:ascii:udp 0.940000 1.350000 2.290000 ( 3.321761)
89
+ get-missing: libm:bin 1.960000 3.790000 5.750000 ( 12.325343)
90
+ get-missing: libm:bin:buffer 1.810000 3.790000 5.600000 ( 10.514154)
91
+ get-missing: mclient:ascii 5.680000 3.770000 9.450000 ( 11.709241)
92
+
93
+ append-missing: dalli:bin 5.740000 3.280000 9.020000 ( 12.254871)
94
+ append-missing: libm:ascii 1.420000 1.890000 3.310000 ( 8.069294)
95
+ append-missing: libm:ascii:pipeline 0.220000 0.030000 0.250000 ( 0.261823)
96
+ append-missing: libm:ascii:udp 0.820000 0.690000 1.510000 ( 2.555414)
97
+ append-missing: libm:bin 1.040000 1.650000 2.690000 ( 6.381088)
98
+ append-missing: libm:bin:buffer 1.230000 2.340000 3.570000 ( 7.498664)
99
+ append-missing: mclient:ascii 5.600000 3.560000 9.160000 ( 11.720957)
100
+
101
+ prepend-missing: dalli:bin 5.470000 3.140000 8.610000 ( 11.572848)
102
+ prepend-missing: libm:ascii 1.490000 1.980000 3.470000 ( 8.491900)
103
+ prepend-missing: libm:ascii:pipeline 0.220000 0.030000 0.250000 ( 0.256449)
104
+ prepend-missing: libm:ascii:udp 0.940000 0.730000 1.670000 ( 2.918613)
105
+ prepend-missing: libm:bin 1.120000 1.830000 2.950000 ( 6.795458)
106
+ prepend-missing: libm:bin:buffer 1.380000 2.920000 4.300000 ( 8.847854)
107
+ prepend-missing: mclient:ascii 5.820000 3.750000 9.570000 ( 12.285245)
108
+
109
+ exist-missing: dalli:bin 5.010000 2.800000 7.810000 ( 10.151381)
110
+ exist-missing: libm:ascii 0.740000 1.780000 2.520000 ( 6.879934)
111
+ exist-missing: libm:ascii:pipeline 0.790000 2.170000 2.960000 ( 6.531277)
112
+ exist-missing: libm:ascii:udp 0.410000 0.740000 1.150000 ( 2.276789)
113
+ exist-missing: libm:bin 0.840000 1.910000 2.750000 ( 8.004243)
114
+ exist-missing: libm:bin:buffer 0.700000 2.090000 2.790000 ( 6.463543)
115
+
116
+ set-large: dalli:bin 7.980000 4.680000 12.660000 ( 16.486839)
117
+ set-large: libm:ascii 0.610000 1.670000 2.280000 ( 6.245315)
118
+ set-large: libm:ascii:pipeline 0.400000 0.510000 0.910000 ( 0.930710)
119
+ set-large: libm:ascii:udp 0.350000 0.730000 1.080000 ( 2.305644)
120
+ set-large: libm:bin 0.440000 1.590000 2.030000 ( 5.655186)
121
+ set-large: libm:bin:buffer 0.380000 1.050000 1.430000 ( 2.445995)
122
+ set-large: mclient:ascii 6.480000 4.310000 10.790000 ( 14.100555)
123
+ set-large: stash:bin 4.590000 2.490000 7.080000 ( 11.164275)
124
+
125
+ get-large: dalli:bin 5.990000 4.320000 10.310000 ( 12.651252)
126
+ get-large: libm:ascii 0.710000 2.010000 2.720000 ( 6.290244)
127
+ get-large: libm:ascii:pipeline 0.810000 2.560000 3.370000 ( 6.832158)
128
+ get-large: libm:ascii:udp 0.440000 0.850000 1.290000 ( 2.274852)
129
+ get-large: libm:bin 0.950000 2.660000 3.610000 ( 8.404311)
130
+ get-large: libm:bin:buffer 0.940000 3.220000 4.160000 ( 8.354847)
131
+ get-large: mclient:ascii 7.420000 3.740000 11.160000 ( 13.644167)
132
+ get-large: stash:bin 2.570000 2.140000 4.710000 ( 8.578543)
133
+
134
+ hash:default 0.420000 0.000000 0.420000 ( 0.421850)
135
+ hash:md5 0.790000 0.010000 0.800000 ( 0.798812)
136
+ hash:crc 0.490000 0.000000 0.490000 ( 0.504619)
137
+ hash:fnv1_64 0.320000 0.000000 0.320000 ( 0.318709)
138
+ hash:fnv1a_64 0.290000 0.000000 0.290000 ( 0.298615)
139
+ hash:fnv1_32 0.300000 0.000000 0.300000 ( 0.295191)
140
+ hash:fnv1a_32 0.290000 0.010000 0.300000 ( 0.298164)
141
+ hash:hsieh 0.110000 0.000000 0.110000 ( 0.108996)
142
+ hash:murmur 0.150000 0.000000 0.150000 ( 0.157561)
143
+ hash:jenkins 0.190000 0.000000 0.190000 ( 0.191567)
144
+ hash:none 0.110000 0.000000 0.110000 ( 0.108987)
145
+
146
+
data/CHANGELOG CHANGED
@@ -1,9 +1,4 @@
1
- v1.8.3. Fix gemspec.
2
-
3
- v1.8.2. Empty update.
4
-
5
- v1.8.1. Fix memcached bug: https://bugs.launchpad.net/libmemcached/+bug/442914
6
-
1
+ v1.9.0. Refactory on the compile/build extension.
7
2
  v1.8.0. Add support for multi-entry CAS (fbogsany).
8
3
  Make rails client .delete method more consistent with other APIs
9
4
 
data/Gemfile CHANGED
@@ -1,4 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- gem 'echoe', '>= 4.6.5'
4
+ gem 'test-unit'
5
+ gem "stackprof"
6
+
7
+ group :benchmark do
8
+ gem "remix-stash", '~> 1.1.3'
9
+ gem "dalli"
10
+ gem "memcache-client"
11
+ end
data/Gemfile.lock CHANGED
@@ -1,49 +1,49 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vinted-memcached (1.8.3)
4
+ vinted-memcached (1.8.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- activesupport (7.0.7.2)
9
+ activesupport (6.1.3.1)
10
10
  concurrent-ruby (~> 1.0, >= 1.0.2)
11
11
  i18n (>= 1.6, < 2)
12
12
  minitest (>= 5.1)
13
13
  tzinfo (~> 2.0)
14
- allison (2.0.3)
15
- concurrent-ruby (1.2.2)
16
- echoe (4.6.6)
17
- allison (>= 2.0.3)
18
- rake (>= 0.9.2)
19
- rdoc (>= 2.5.11)
20
- rubyforge (>= 2.0.4)
21
- i18n (1.14.1)
14
+ zeitwerk (~> 2.3)
15
+ concurrent-ruby (1.1.8)
16
+ dalli (2.7.11)
17
+ i18n (1.8.10)
22
18
  concurrent-ruby (~> 1.0)
23
- json_pure (2.6.3)
24
- minitest (5.19.0)
25
- mocha (2.1.0)
26
- ruby2_keywords (>= 0.0.5)
27
- psych (5.1.0)
28
- stringio
29
- rake (13.0.6)
30
- rdoc (6.5.0)
31
- psych (>= 4.0.0)
32
- ruby2_keywords (0.0.5)
33
- rubyforge (2.0.4)
34
- json_pure (>= 1.1.7)
35
- stringio (3.0.8)
36
- tzinfo (2.0.6)
19
+ memcache-client (1.8.5)
20
+ minitest (5.14.4)
21
+ mocha (1.12.0)
22
+ power_assert (2.0.0)
23
+ rake (13.0.3)
24
+ rake-compiler (1.1.1)
25
+ rake
26
+ remix-stash (1.1.3)
27
+ stackprof (0.2.17)
28
+ test-unit (3.4.0)
29
+ power_assert
30
+ tzinfo (2.0.4)
37
31
  concurrent-ruby (~> 1.0)
32
+ zeitwerk (2.4.2)
38
33
 
39
34
  PLATFORMS
40
35
  ruby
41
36
 
42
37
  DEPENDENCIES
43
38
  activesupport
44
- echoe (>= 4.6.5)
39
+ dalli
40
+ memcache-client
45
41
  mocha
46
42
  rake
43
+ rake-compiler
44
+ remix-stash (~> 1.1.3)
45
+ stackprof
46
+ test-unit
47
47
  vinted-memcached!
48
48
 
49
49
  BUNDLED WITH
data/README.md ADDED
@@ -0,0 +1,144 @@
1
+ # memcached
2
+
3
+ An interface to the libmemcached C client.
4
+ [![Build Status](https://github.com/arthurnn/memcached/workflows/CI/badge.svg?branch=1-0-stable)](https://github.com/arthurnn/memcached/actions?query=branch%3A1-0-stable)
5
+
6
+ ## License
7
+
8
+ Copyright 2009-2013 Cloudburst, LLC. Licensed under the AFL 3. See the
9
+ included LICENSE file. Portions copyright 2007-2009 TangentOrg, Brian Aker,
10
+ licensed under the BSD license, and used with permission.
11
+
12
+ ## Features
13
+
14
+ * clean API
15
+ * robust access to all memcached features
16
+ * SASL support for the binary protocol
17
+ * multiple hashing modes, including consistent hashing
18
+ * ludicrous speed, including optional pipelined IO with no_reply
19
+
20
+
21
+ The **memcached** library wraps the pure-C libmemcached client via SWIG.
22
+
23
+ ## Installation
24
+
25
+ You need Ruby 1.8.7 or Ruby 1.9.2. Other versions may work, but are not
26
+ guaranteed. You also need the `libsasl2-dev` and `gettext` libraries, which
27
+ should be provided through your system's package manager.
28
+
29
+ Install the gem:
30
+ sudo gem install memcached --no-rdoc --no-ri
31
+
32
+ ## Usage
33
+
34
+ Start a local networked memcached server:
35
+ $ memcached -p 11211 &
36
+
37
+ Now, in Ruby, require the library and instantiate a Memcached object at a
38
+ global level:
39
+
40
+ require 'memcached'
41
+ $cache = Memcached.new("localhost:11211")
42
+
43
+ Now you can set things and get things:
44
+
45
+ value = 'hello'
46
+ $cache.set 'test', value
47
+ $cache.get 'test' #=> "hello"
48
+
49
+ You can set with an expiration timeout:
50
+
51
+ value = 'hello'
52
+ $cache.set 'test', value, 1
53
+ sleep(2)
54
+ $cache.get 'test' #=> raises Memcached::NotFound
55
+
56
+ You can get multiple values at once:
57
+
58
+ value = 'hello'
59
+ $cache.set 'test', value
60
+ $cache.set 'test2', value
61
+ $cache.get ['test', 'test2', 'missing']
62
+ #=> {"test" => "hello", "test2" => "hello"}
63
+
64
+ You can set a counter and increment it. Note that you must initialize it with
65
+ an integer, encoded as an unmarshalled ASCII string:
66
+
67
+ start = 1
68
+ $cache.set 'counter', start.to_s, 0, false
69
+ $cache.increment 'counter' #=> 2
70
+ $cache.increment 'counter' #=> 3
71
+ $cache.get('counter', false).to_i #=> 3
72
+
73
+ You can get some server stats:
74
+
75
+ $cache.stats #=> {..., :bytes_written=>[62], :version=>["1.2.4"] ...}
76
+
77
+ Note that the API is not the same as that of **Ruby-MemCache** or
78
+ **memcache-client**. In particular, `nil` is a valid record value.
79
+ Memcached#get does not return `nil` on failure, rather it raises
80
+ **Memcached::NotFound**. This is consistent with the behavior of memcached
81
+ itself. For example:
82
+
83
+ $cache.set 'test', nil
84
+ $cache.get 'test' #=> nil
85
+ $cache.delete 'test'
86
+ $cache.get 'test' #=> raises Memcached::NotFound
87
+
88
+ ## Rails 3 and 4
89
+
90
+ Use [memcached_store gem](https://github.com/Shopify/memcached_store) to
91
+ integrate ActiveSupport cache store and memcached gem
92
+
93
+ ## Pipelining
94
+
95
+ Pipelining updates is extremely effective in **memcached**, leading to more
96
+ than 25x write throughput than the default settings. Use the following options
97
+ to enable it:
98
+
99
+ :no_block => true,
100
+ :buffer_requests => true,
101
+ :noreply => true,
102
+ :binary_protocol => false
103
+
104
+ Currently #append, #prepend, #set, and #delete are pipelined. Note that when
105
+ you perform a read, all pending writes are flushed to the servers.
106
+
107
+ ## Threading
108
+
109
+ **memcached** is threadsafe, but each thread requires its own Memcached
110
+ instance. Create a global Memcached, and then call Memcached#clone each time
111
+ you spawn a thread.
112
+
113
+ thread = Thread.new do
114
+ cache = $cache.clone
115
+ # Perform operations on cache, not $cache
116
+ cache.set 'example', 1
117
+ cache.get 'example'
118
+ end
119
+
120
+ # Join the thread so that exceptions don't get lost
121
+ thread.join
122
+
123
+ ## Legacy applications
124
+
125
+ There is a compatibility wrapper for legacy applications called
126
+ Memcached::Rails.
127
+
128
+ ## Benchmarks
129
+
130
+ **memcached**, correctly configured, is at least twice as fast as
131
+ **memcache-client** and **dalli**. See link:BENCHMARKS for details.
132
+
133
+ ## Reporting problems
134
+
135
+ The support forum is [here](http://github.com/evan/memcached/issues).
136
+
137
+ Patches and contributions are very welcome. Please note that contributors are
138
+ required to assign copyright for their additions to Cloudburst, LLC.
139
+
140
+ ## Further resources
141
+
142
+ * [Memcached wiki](https://github.com/memcached/memcached/wiki)
143
+ * [Libmemcached homepage](libmemcached.org)
144
+