PHPackages                             cheprasov/php-memcached-tags - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. cheprasov/php-memcached-tags

ActiveLibrary[Caching](/categories/caching)

cheprasov/php-memcached-tags
============================

MemcachedTags for PHP is a mechanism for adding tags to keys in Memcached. It is very useful, if you need to select or delete some keys by tags. And tags are really useful for group invalidation.

1.0.5(8y ago)13134.7k—0%4[1 PRs](https://github.com/cheprasov/php-memcached-tags/pulls)1MITPHPPHP &gt;=5.5

Since Mar 9Pushed 4y ago3 watchersCompare

[ Source](https://github.com/cheprasov/php-memcached-tags)[ Packagist](https://packagist.org/packages/cheprasov/php-memcached-tags)[ Docs](http://github.com/cheprasov/php-memcached-tags)[ RSS](/packages/cheprasov-php-memcached-tags/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (3)Versions (6)Used By (1)

[![MIT license](https://camo.githubusercontent.com/4661abfe916186acde514558e7f040833cb63ba7098401a51ce339cbb2b4cf9e/687474703a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)](http://opensource.org/licenses/MIT)[![Latest Stable Version](https://camo.githubusercontent.com/4abd3ffd891937c30efc5b8a0a8421dd942fcc7eba61a55bccb09e13f60d63e6/68747470733a2f2f706f7365722e707567782e6f72672f636865707261736f762f7068702d6d656d6361636865642d746167732f762f737461626c65)](https://packagist.org/packages/cheprasov/php-memcached-tags)[![Total Downloads](https://camo.githubusercontent.com/9ba2264db73576257362bb7d199700e1cc92606b39c5ad49c97920481f11a8cb/68747470733a2f2f706f7365722e707567782e6f72672f636865707261736f762f7068702d6d656d6361636865642d746167732f646f776e6c6f616473)](https://packagist.org/packages/cheprasov/php-memcached-tags)

MemcachedTags v1.0.5 for PHP &gt;= 5.5
======================================

[](#memcachedtags-v105-for-php--55)

About
-----

[](#about)

MemcachedTags for PHP is a mechanism for adding tags to keys in Memcached. It is very useful, if you need to select or delete some keys by tags. And tags are really useful for group invalidation.

Main features
-------------

[](#main-features)

- Data modification functions such as delete/add/set use [Locks](https://github.com/cheprasov/php-memcached-lock) to prevent losing data.
- MemcachedTags does not affect original keys. It creates own keys for service tags.

How it works
------------

[](#how-it-works)

I will try to explain a mechanism, how memcached stores tags.

Imagine, you have some 3 keys in memcached (user1, user2, user3):

```
MEMCACHED (key : value)
user1 : {"name":"Alexander", "sex":"m", "city":"London"}
user2 : {"name":"Irina", "sex":"f", "city":"London"}
user3 : {"name":"Dima", "sex":"m", "city":"Murmansk"}

```

Now, lets add tag 'London' to users:

```
// php code
MemcachedTags->addTagsToKeys('London', ['user1', 'user2']);
```

And, as result, the memcached will contain:

```
MEMCACHED (key : value)
user1 : {"name":"Alexander", "sex":"m", "city":"London"}
user2 : {"name":"Irina", "sex":"f", "city":"London"}
user3 : {"name":"Dima", "sex":"m", "city":"Murmansk"}

tag_k_user1 : London
tag_k_user2 : London

tag_t_London : user1||user2

```

And, lets add tags 'male' and 'female' to users:

```
// php code
MemcachedTags->addTagsToKeys('male', ['user1', 'user3']);
MemcachedTags->addTagsToKeys('female', 'user2');
```

And, as result, the memcached will contain:

```
MEMCACHED (key : value)
user1 : {"name":"Alexander", "sex":"m", "city":"London"}
user2 : {"name":"Irina", "sex":"f", "city":"London"}
user3 : {"name":"Dima", "sex":"m", "city":"Murmansk"}

tag_k_user1 : London||male
tag_k_user2 : London||female
tag_k_user3 : male

tag_t_London : user1||user2
tag_t_male   : user1||user3
tag_t_female : user2

```

Usage
-----

[](#usage)

```
