base on memcached development tree # Memcached Memcached is a high performance multithreaded event-based key/value cache store intended to be used in a distributed system. See: https://memcached.org/about A fun story explaining usage: https://memcached.org/tutorial If you're having trouble, try the wiki: https://memcached.org/wiki If you're trying to troubleshoot odd behavior or timeouts, see: https://memcached.org/timeouts https://memcached.org/ is a good resource in general. Please use the mailing list to ask questions, github issues aren't seen by everyone! ## Dependencies * libevent - https://www.monkey.org/~provos/libevent/ (libevent-dev) * libseccomp (optional, experimental, linux) - enables process restrictions for better security. Tested only on x86-64 architectures. * openssl (optional) - enables TLS support. need relatively up to date version. pkg-config is needed to find openssl dependencies (such as -lz). ## Building from tarball If you downloaded this from the tarball, compilation is the standard process: ``` ./configure make make test # optional make install ``` If you want TLS support, install OpenSSL's development packages and change the configure line: ``` ./configure --enable-tls ``` If you want to enable the memcached proxy: ``` ./configure --enable-proxy ``` ## Building from git To build memcached in your machine from local repo you will have to install autotools, automake and libevent. In a debian based system that will look like this ``` sudo apt-get install autotools-dev automake libevent-dev ``` After that you can build memcached binary using automake ``` cd memcached ./autogen.sh ./configure make make test ``` It should create the binary in the same folder, which you can run ``` ./memcached ``` You can telnet into that memcached to ensure it is up and running ``` telnet 127.0.0.1 11211 stats ``` IF BUILDING PROXY, AN EXTRA STEP IS NECESSARY: The proxy has some additional vendor dependency code that we keep out of the tree. ``` cd memcached cd vendor ./fetch.sh cd .. ./autogen.sh ./configure --enable-proxy make make test ``` ## Environment Be warned that the -k (mlockall) option to memcached might be dangerous when using a large cache. Just make sure the memcached machines don't swap. memcached does non-blocking network I/O, but not disk. (it should never go to disk, or you've lost the whole point of it) ## Build status See https://build.memcached.org/ for multi-platform regression testing status. ## Bug reports Feel free to use the issue tracker on github. **If you are reporting a security bug** please contact a maintainer privately. We follow responsible disclosure: we handle reports privately, prepare a patch, allow notifications to vendor lists. Then we push a fix release and your bug can be posted publicly with credit in our release notes and commit history. ## Website * https://www.memcached.org ## Contributing See https://github.com/memcached/memcached/wiki/DevelopmentRepos ", Assign "at most 3 tags" to the expected json: {"id":"2447","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"