System Properties Comparison Redis vs. rb to look like:. Why does redis report limit of 1024 files even after update to limits. figurative, news. X “Redis” class provided alternative implementations of a few commands. Redis (/ ˈ r ɛ d ɪ s /; Remote Dictionary Server) is an in-memory data structure project implementing a distributed, in-memory key-value database with optional durability. Redis is a key/value store, but it’s jam-packed with a ton of other little utilities that make it a joy to explore and implement. Publish("chat", "This is a message"). What you will learn. Redis (Remote Dictionary Server) is an open-source, in-memory database that is used as a cache and message broker. py >>> from rediscluster import RedisCluster >>> # Requires at least one node for cluster discovery. func (*Client) Dump ¶ Uses. The SLA only covers connectivity to the cache endpoints. As a harsh critic of technical documentation, I'm floored by how great Redis' documentation and reference documentation is. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indexes. For this reason it is much better to use when you have short lived messages and where you will have more consumer capacity that you have publishing throughput so as to not run out of memory. Service Level Agreement (SLA)—Azure Cache for Redis guarantees that a standard/premium cache will be available at least 99. Example redis 127. Redis - Configuration. az redis patch-schedule: Manage Redis patch schedules. Service: Redis Cache The subscription. We have Node. 24 LASTSAVE This command is used to retrieve the UNIX time stamp of the last successful save to the disk. Here the variable named ‘cachedResponse’ holds the value with expiration details. Prefetching Keys. It is also referred to as a dictionary server as the key values are not only strings, but also hashes, sets, lists, and sorted sets. Introduction. First of all. Redis is an in memory database that happens to have publish subscribe features. Redis is an advanced and feature-rich key-value store that works in most POSIX systems such as Linux (which is the recommended platform for production deployment), *BSD, and OS X without external dependencies. I have a Redis instance (S1 standard), and MS honoured my spending limit (which I didn't know was on there), and stopped all websites and SQL Databases etc when the subscription had hit the ceiling. APPEND key value # append a value to a key: BITCOUNT key [start end SUBSCRIBE channel [channel. I installed via this repo I double checked the systemd redis. Camel provides a producer for executing commands, consumer for subscribing to pub/sub messages an idempotent repository for filtering out duplicate messages. Cache namespace for that subscription. CSharp code examples for StackExchange. redis subscribe to key. io) host: host to connect to redis on (localhost) port: port to connect to redis on (6379) pubClient: optional, the redis client to publish events on. What is Redis? Redis is a kind of in-memory database that has different kinds of data structures you can use. Redis Stream. Double Buffering in Redis. We must remember that, Redis keeps all the keys in-memory and it does not swap all the data. Other examples of the azurerm_redis_cache resource can be found in the. StackExchange. Because the ConnectionMultiplexer does a lot, it is designed to be shared and reused between callers. attr_reader :redis, :redis_key, :expiration_ms, :nx def lock redis. Redis has a buildin pubsub mechanism, but by default it is not possible to listen on specific keys. ApsaraDB for Redis is a key value cloud database service built by Alibaba Cloud and is compatible with the Redis protocol and supports a majority of the Redis commands. Scales efficiently in a clustered deployment. 0+ are recommended. Hello Redis. Redis is an open-source, in-memory key-value data store, used as a database, cache, and message broker. In following sections, we will demonstrate the use of StackExchange. It is the logical successor to BookSleeve , and is the client developed-by (and used-by) Stack Exchange for busy sites like Stack Overflow. Can anyone suggest the way to achieve this? -- You received this message because you are subscribed to the Google Groups "Redis DB" group. Key redis awesomeness Sort SETs or LISTS using external values, and join values in one go:SORT keySORT key BY pattern (e. 11 PTTL key It is used to retrieve the remaining time in keys expiry in milliseconds. Keys()) { Console. Redis Partitioning. 23 INFO [section] This command is used to get information and statistics about the server. (Looking for Redis-backed Object Caching for WordPress?) Our MySQL-based caching solution has worked really well for our customers so far, but we thought we could use the same ideas and take them even further with Redis — an extremely fast and flexible in-memory key-value store. Subscribe Subscribed Join experts Rami Sayar and Steven Edouard for a look at how to get up and running with Redis, a powerful key-value cache and store. It is written in ANSI C and runs on most if not all Unix-like operating systems including Linux (recommended for deploying) without external dependencies. I wrote a C++ Redis client: redis-plus-plus. Fortunately, since version 2. Data is added, queried, modified, and deleted with commands that operate on keys in Redis' in-memory data structure. Redis - Publish Subscribe - Redis Pub/Sub implements the messaging system where the senders (in redis terminology called publishers) sends the messages while the receivers (subscribers) re. The Redis Cloud Essentials plan; To change the first two, click on the pencil icon to the right of each. The people who get the message are those who are subscribed to the channel. Redis Stream. Redis pub/sub is a lean and simple implementation of the publish/subscribe pattern which has been a feature of all Redis servers since the 2. »azurerm_redis_cache Manages a Redis Cache. The basic algorithm used to map keys to hash slots is the following:. * FROM activities JOIN friendships f1 ON f1. We can apply a similar technique in Redis as follows: Build the new sorted set using a separate, temporary key; Rename the temporary key to the existing key (implicitly deletes the temporary key) This is how it works out in practice:. 23 INFO [section] This command is used to get information and statistics about the server. 1:6379> COMMAND KEY_NAME Example redis 127. While the time complexity for this operation is O(N), the constant times are fairly low. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indexes. * Will receive all the messages sent to the channel news. In-memory and key-value sounds much like a memory cache - and indeed you can think of Redis as of a specialized and more advanced memory cache. Advanced Redis: Subscribe Script to Pub/Sub Channel. Redis is an open source, in-memory data structure store, used as a database, cache and message broker. To send a message you also need a Redis template. Redis is an open source, in-memory key-value data store, used as a database, cache and message broker. Thread safe unless otherwise stated. The project started when Salvatore Sanfilippo, the original developer of Redis, was trying to improve the scalability of his Italian startup. I am not sure I like their implementation, but I need to learn more about it. I'm writing an event-driven publish/subscribe application with NodeJS and Redis. 1:6379> SUBSCRIBE channel [channel ] Return Value. Redis System Properties Comparison Ignite vs. In following sections, we will demonstrate the use of StackExchange. graphql-redis-subscriptions. In this tutorial, we’re gonna look at how to do Redis CRUD Operations with Spring Boot using Spring Data Redis. HMSET: mass assigns several key-values to a hash. While the time complexity for this operation is O(N), the constant times are fairly low. Introduction. Commands perform atomic operations on a key space, reading or altering the value of one or more keys. Getting Started with Microsoft. Plus, he reviews the different data types available, and demonstrates what you can do with strings, hashes, and lists. Keys, Values and Channels. As we mentioned before, Redis is not only key/value server, but it's also a messaging server. Executing SET command in Redis, such a those explained the previous section, are performed by creating a distinct key within Redis. 1:6379> COMMAND KEY_NAME Example redis 127. With Celery, you can specify different message broker backends, with Redis being one of the supported message brokers. How can I subscribe to any new values, not just. It is based on open source Redis Cache. You can connect to the Azure Redis Cache using the redis-cli client and run the SlowLog command to see if there are requests taking longer than expected. Redis is an open source data structure server with an in-memory dataset that does much more than simple key/value storage thanks to its built-in data types. Steven Edouard and I show you how to get up and running with Redis, a powerful key-value cache and store. With an extensive support for diverse data structures, file-based persistence, a publish/subscribe engine and an. It depends on trollius (asyncio compatible for PEP 3156). The list command (BLPOP) used by Logstash is supported in Redis v1. It's different from KEYS in that SCAN only returns a small number of elements each call, so it can be used in production without the downside of blocking the server for a long time. The Redis class continues to return None. Could be, if large amount of key-value churn is causing frequent dumps of the entire Redis datastore to disk. Configuration; Predis; PhpRedis; Interacting With Redis. I can display this key when the page loads using PHP (phpredis), but I would like this key to update live on the page. IMPORTANT Keyspace notifications is a feature available since 2. The canonical reference for building a production grade API with Spring. Not all Redis commands are supported in Azure Cache for Redis. Key-value store is a special type of database storage system where data is stored in form of key and value pairs. The key thing being that Redis "transactionally" updates the multiple memory cells that comprise a data structure to perform atomic operations on them, to hide this fact. Redis is the ConnectionMultiplexer class in the StackExchange. A hash in Redis is a map between one string field and string values, like a one-to-many relationship. The StrictRedis class attempts to adhere to the official official command synt. We will follow the same sequence as followed in Redis data-types-intro at. subClient: optional, the redis client to subscribe to events on. Posted by Marco Lisci. I'm thinking about ways to represent multiple groups that clients can subscribe to. The Spring Data Redis (or SDR) framework makes it easy to write Spring applications that use the Redis key value store by eliminating the redundant tasks and boiler plate code required for interacting with the store through Spring's excellent infrastructure support. Versions 2. Heroku Redis is an in-memory key-value data store, run by Heroku, that is provisioned and managed as an add-on. You may publish messages to the channel from another application, or even using another programming language, allowing easy communication between applications / processes. Go-Redis is designed to store and update slot info automatically with a cluster change. Here the variable named ‘cachedResponse’ holds the value with expiration details. Redis keys are expired in two ways: a passive way, and an active way. Redis supports data structures such as strings, hashes, lists, sets, and sorted sets with range queries. a persistent real-time key-value store, with the same redis protocol with powerful features. How to install Redis on Ubuntu 16. Keys()) { Console. People tend to forget the power of a well-defined key name and miss a lot of opportunities. I’m not sure if this is a good idea. It helps developers, dev-ops and system administrators quickly view content of key-value databases and simplify typical routine operations related to them. Redis Pub/Sub Background. Redis is an in memory database that happens to have publish subscribe features. You may want to check out more software, such as LaCie Desktop Manager , Auctiva Desktop Manager or Desktop Manager BBox , which might be related to Redis Desktop Manager. This will take you to the main page of the service where you can add a new cache by clicking on the Add button at the top. Clients may subscribe to glob-style patterns in order to receive all the messages sent to channel names matching a given pattern. Other examples of the azurerm_redis_cache resource can be found in the. I've installed a web app called scrumblr which uses redis as a database. It has great flexibility and can also be used as a message queue,. az redis regenerate-keys: Regenerate Redis cache's access keys. Redis Desktop Manager (aka RDM) — is a fast open source Redis database management application for Windows, Linux and MacOS. Redis is the most popular, open-source, key value data structure server that provides a wide range of capabilities on which multiple platforms can be be built. Redis is an in-memory key value datastore written in ANSI C programming language by Salvatore Sanfilippo. Redis Basic scanning of all keys on server Example // Connect to a target server using your ConnectionMultiplexer instance IServer server = conn. It sounds like you're fishing for the contents for some article you're going to post to Yahoo!. Node = Hash(key) MOD N The limit with this kind of partitioning is that once you need to add or remove nodes from the system to adjust the capacity, it is a real mess. Data is added, queried, modified, and deleted with commands that operate on keys in Redis' in-memory data structure. 4 Hashes in Redis Figure 1. It has been widely popular in the tech community and has been utilized heavily by Pinterest, Twitter, StackOverflow, and many others. Redis Cluster. While the key is stored as a byte array and thus can be complex, you'll mostly use a string as a key. So for example, if publisher publish a message on db index 10, then a subscriber on db index 1 will receive the message. How To Use Redis with Golang. Heroku Redis lets you gain greater visibility into performance, better manage your instances with a powerful CLI and easily federate data with Postgres to gain business insights using. Also have a subscriber for listening key expiration events and then have a callback to my other system which can perform some business rules on it. Working with this is already tricky in itself. Redis SUBSCRIBE - How to subscribe to multiple channels in redis pub/sub Lalit Bhagtani 8 months ago In this tutorial, we will learn about how to subscribe to multiple channels in redis message broker system using redis-cli. Shortly afterwards, in this commit , Redis introduced “pattern subscriptions”. If there are only a few keys that have expired and redis hasn't deleted them - it is fine. StrictRedis's TTL command now returns a -1 when querying a key with no expiration. One important factor that differentiates Redis from similar servers is its ability to store and manipulate high-level data types (common examples include lists, maps, sets, and sorted sets). Setting up Express and Redis with Docker compose. A key is the unique name of a piece of data (which could be a String, a List, Hash, or any of the other redis data types) within a database. It supports Python 2 and 3 Trollius-using developers. Description A widely adopted in-memory data grid In-memory key-value store, originally intended for caching In-memory data structure store, used as database, cache and message broker Redis focuses on performance so most of its design decisions prioritize high performance and very low latencies. The key-value part refers to the fact that the database stores data as a collection of key/value pairs. X “Redis” class provided alternative implementations of a few commands. While the time complexity for this operation is O(N), the constant times are fairly low. Set key to hold the string value. Redis namespace; this is the object that hides away the details of multiple servers. Redis MQ Client / Server. The sunion operator then enables us to group multiple sets together based on a particular time. So if you're ready to learn Redis while building a client with IR Redis, fire up your favorite editor and terminal and let's get started. Learning Redis is an example-based introduction which demonstrates how to work with the data store by creating a playable word game, written in NodeJs. A key is actively expired simply when some client tries to access it, and the key is found to be timed out. Redis can be used to an amplitude of things. Redis desktop manager will give you UI to manage your Redis keys and data. If you are interested in playing around with Redis and. About socket-redis starts a WebSocket server ( SockJS ) where clients can connect to, and subscribe to multiple channels. rescue NotAcquired false end private # set instance variables in the initializer, but never call them directly. Configuration; Predis; PhpRedis; Interacting With Redis. This is a simple method of storing data, and it is known to scale well. That's PUBLISH. 1:6379> DEL tutorialspoint (integer) 1 In the above example, DEL is the command, while tutorialspoint is the key. Fixes #179 and #195. Redis is an open source, high-performance and flexible in-memory data structure store (key value format) – used as a database, cache and message broker. Redis is a key-value pair cache and store. It start with creating an instance on your azure subscription and make sure to create it on same datacenter in which your App Service resides. I'm not sure if this is a good idea. Executing SET command in Redis, such a those explained the previous section, are performed by creating a distinct key within Redis. If we want to use Redis as an LRU cache, and in general as a cache, every data inside the instance is a good candidate for eviction, regardless of an expire set. 0 drops support for the legacy “Redis” client class. A key is actively expired simply when some client tries to access it, and the key is found to be timed out. In this course, you'll learn about the data structures in Redis, and you'll see how to practically apply them in the real world. Set a timeout on the specified key. Scales efficiently in a clustered deployment. Redis SUBSCRIBE command subscribes the client to the specified channels. StrictRedis's TTL command now returns a -1 when querying a key with no expiration. Redis (/ ˈ r ɛ d ɪ s /; Remote Dictionary Server) is an in-memory data structure project implementing a distributed, in-memory key-value database with optional durability. redis-py exposes two client classes that implement these commands. it points to the binaries. Assuming you have Redis installed and your redis server is running. Related Post: Spring Data Redis Messaging – PubSub example | Spring Boot. 1+, and the channel commands used by Logstash are found in Redis v1. Redis is the ConnectionMultiplexer class in the StackExchange. Although you can get and set all Redis configurations by Redis CONFIG command. Redis is an open source, high-performance and flexible in-memory data structure store (key value format) – used as a database, cache and message broker. This feature is disabled by default, so we need to enable it. rescue NotAcquired false end private # set instance variables in the initializer, but never call them directly. It has three major uses: as a database, cache and message broker. If you’d like to obfuscate or disable this command, or other commands, edit the redis['rename_commands'] setting in /etc/gitlab/gitlab. In order to use Redis with C# you will need a C# Redis client. It supports the following features: Most commands for Redis. Related Post: Spring Data Redis Messaging – PubSub example | Spring Boot. I need an example of how to notify web clients when the data values in Redis change. Redis Desktop Manager (aka RDM) — offers you an easy-to-use GUI to access your Redis databases and perform some basic operations: View keys as a tree; CRUD keys; Analyse memory usage for entire DB or for selected namespace in tree-view (redis-server >= 4. We will follow the same sequence as followed in Redis data-types-intro at. py >>> from rediscluster import RedisCluster >>> # Requires at least one node for cluster discovery. Couchbase document lookups tend to be more expensive than hash lookups in Redis because you have to pull the entire document into application memory to parse it rather than having the data store pull the specific key out of the hash. Then we can subscribe to those notifications. RDBTool is a browser based management interface for Redis. For this reason it is much better to use when you have short lived messages and where you will have more consumer capacity that you have publishing throughput so as to not run out of memory. Steven Edouard and I show you how to get up and running with Redis, a powerful key-value cache and store. It is worth mentioning that events are generated only if a key has really been modified. If you store an N (with N small) fields object as independent keys (one field per key), or the same object as an hash with five fields, the latter will require in the average five times less memory. Redis is an open source, high-performance and flexible in-memory data structure store (key value format) - used as a database, cache and message broker. Python + Redis + PubSub. For instance: PSUBSCRIBE news. az redis server-link: Manage Redis server links. For instance: PSUBSCRIBE news. 8 added the SCAN command to incrementally iterate through the keys in the database. In section four, we will go ahead to some of the advanced concepts such as the Publish-Subscribe Patterns, and we will see how Redis protocol supports, and what other services does Azure Redis Cache service provide us with in order to publish the messages, and develop a full-featured communication application using the WPF framework. Learn about the new open-source Redis 5 feature - Redis Streams. * FROM activities JOIN friendships f1 ON f1. But I did it anyway. Laravel also provides a convenient interface to the Redis publish and subscribe commands. Redis is an in-memory key-value store that can be used as a database, cache or message broker. But, like so many others, maybe you've had trouble understanding exactly when you would reach for a key-value database like this. All the glob-style patterns are. rescue NotAcquired false end private # set instance variables in the initializer, but never call them directly. Redis supports various data types really well and has lots of extra features: transactions are built-in, and it also has a good publish/subscribe feature. ConnectionMultiplexer. Redis is a key-value store that we can use as a cache for our most frequently used data. Redis pub/sub is a lean and simple implementation of the publish/subscribe pattern which has been a feature of all Redis servers since the 2. According to this messaging paradigm, the sender ( publisher ) of the message are not programmed to send their message directly to a specific receiver ( subscriber ). We provide a "template" as a high-level abstraction for sending and receiving messages. There are many PHP clients listed on its official website out of which phpredis is widely popular. Is there a need for Backbone. The Spring Data Redis project applies core Spring concepts to the development of solutions by using a key-value style data store. »azurerm_redis_cache Manages a Redis Cache. - Error, if key exist and value stored at the key is not a sorted set. What sets Redis apart from other key-value databases is its unique ability to handle high-level data types. It is very popular, capable and remarkably fast In-Memory database. subscribe channel :订阅频道,例: subscribe mychat ,订阅 mychat 这个频道. 3 Expiring keys When writing data into Redis, there may be a point at which data is no longer needed. UnableToResolvePhysicalConnection on PING at StackExchange. I've got a key in Redis that updates every second. I'm thinking about ways to represent multiple groups that clients can subscribe to. It was started in 2009 by Salvatore. Used in the real world: github, craigslist, bit. Redis Pub/Sub: Howto Guide. az redis regenerate-keys: Regenerate Redis cache's access keys. zrem('jobs', *keys) end Everything here is probably pretty clear, except for this -300 when we get the jobs. Redis keys ● Binary safe ● Empty string is valid key ● Very long key is a bad idea ● Very short key is [often] a bad idea ○ u1000flw ● Stick with a schema ○ user:1000:followers ● Max allowed key size is 512 MB. Few examples of long running commands are mget with large number of keys, keys * or poorly written lua script. So do stay tuned and on the lookout for blog posts tagged 'Redis'. az redis list-keys: Retrieve a Redis cache's access keys. ! 3! Introduction! Yesterday's!web!was!mostly!populating!static!pages!with!contents!fromrelational!. "StrictRedis" has been renamed to "Redis" and an alias named "StrictRedis" is provided so that users previously using "StrictRedis" can continue to run unchanged. What you will learn. az redis patch-schedule delete: Deletes the patching schedule of a redis cache (requires Premium SKU). But in simple sentence, Redis publish-subscribe enables us to do quick messaging and communication between processes. 8 intruduced Keyspace Notifications, to which you can subscribe. Publish/Subscribe events in redis is leveraged for data change notification: Distinguish event type with event's value: register , unregister , subscribe , unsubscribe. socket-redis is a WebSocket pub/sub server and client, exposing an API over Redis (allowing you to use WebSocket functionality in your application using a Redis client). Hello Redis. 0 is required) List connected clients, Pub/Sub channels and Slow log commands. Knowing this you may soon realize that Redis Cluster finally catches up with the multiple cores fashion. Redis namespace; this is the object that hides away the details of multiple servers. By default, the KEYS command is disabled as a security measure. But in simple sentence, Redis publish-subscribe enables us to do quick messaging and communication between processes. Publishers and Subscribers work independently of one another, where a publisher will not know about the subscribers subscribing to a channel and vice-versa. I've looking around and I'm unable to find how to perform a subscription to keyspace notifications on Redis using StackExchange. Redis Pub/Sub: Howto Guide. Each of these Redis clients is configured to send every message it receives on the pubsub channel, to all of its listeners. This tutorial shows how to create and configure a Spring Redis Application. PubSub with Redis and Akka Actors Redis (the version on the trunk) offers publish/subscribe based messaging. Executing SET command in Redis, such a those explained the previous section, are performed by creating a distinct key within Redis. The Spring Data Redis (SDR) framework makes it easy to write Spring applications that use the Redis key-value store by eliminating the redundant tasks and boilerplate code required for interacting with the store through Spring's excellent infrastructure support. I wrote a C++ Redis client: redis-plus-plus. Additionally it will subscribe to another pub/sub channel socket-redis-down where you can send messages to all clients in a channel. Heroku Redis is an in-memory key-value data store, run by Heroku, that is provisioned and managed as an add-on. Learn Redis Through Examples You've probably known for a while now that Redis is a thing. Redis has a buildin pubsub mechanism, but by default it is not possible to listen on specific keys. Basic verification. var getScript = redis. Redis Can be used as Database, a Caching layer or a Message broker. A high write-rate might outpace key eviction resulting in an out of memory condition. Versions 2. Introduction. I've looking around and I'm unable to find how to perform a subscription to keyspace notifications on Redis using StackExchange. The Keys() call will select either the KEYS or SCAN command based on the version of the Redis server. a persistent real-time key-value store, with the same redis protocol with powerful features. To use Redis for object caching on WordPress sites, it starts with installing and configuring Redis, then installing a PHP extension, followed by the Redis Object Cache plugin. Redis Explained in 5 Minutes or Less January 28, 2014 Philip Shon. Join us at Redis Day London 2019 full day conference featuring user stories and developer updates from the Redis world. To solve this problem and demonstrate the power of open source to add location-aware features to a web application, I combined publicly available bikeshare data, the Python programming language, and the open source Redis in-memory data structure server to index and query geospatial data. Redis hashes allow you to save groups of key-value pairs mapped to an individual higher-level Redis key. Lazy expiry - on every access to an object Redis first checks whether the object has already been expired by looking at its TTL, and if 'yes' Redis deletes it 2. Redis is an in memory database that happens to have publish subscribe features. I'm not sure if this is a good idea. I don't know why you'd choose to be so specific about a particular number of "mistakes" (or caveats). This is a common practice when using Redis for something other than adding a simple key-value pair. In simpler terms- Notifications: the simplest of things that makes coding so much easier! This. # call (*command) ⇒ Object Sends a command to Redis and returns its reply. You've heard that Redis has an embedded scripting language, but haven't given it a try yet? Here's a tour of what you need to understand to use the power of Lua with your Redis server. For our Celery-based project, we will use Redis as the message broker and we can find the instructions to set it up on their homepage. Executing SET command in Redis, such a those explained the previous section, are performed by creating a distinct key within Redis. Redis is an open source, in-memory, key value store. Redis weekly update #7 - Full of keys. How to install Redis on Ubuntu 16. We use Java Configuration to configure Spring. 0 drops support for the legacy “Redis” client class. Thanks Ovidiu Predescu for the test case. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Redis Stream. Redis is an open-source in-memory data store that can serve as a database, cache, message broker, and queue. The StrictRedis class attempts to adhere to the official official command synt. You can store values in hashes that are similar to the values of regular STRING(s) or the actual STRING(s) themselves; the value can also be read as a numeric value or a number that can be increased or decreased. zrange('jobs', 0, -300) redis. Basic redis commands for working with Strings, Lists and Maps as described at Redis docs. Who doesn't know about Redis? It's harder and harder to find someone giving a positive answer to this question as the popularity of this key/value store is constantly increasing. As well as being key value store, Redis offers a publish subscribe messaging implementation.