Posts by Kyle Davis
Author: Kyle Davis
Bug Fix: Lua and MessagePack
Feed: Redis Labs. Author: Kyle Davis. Apple Vulnerability Research made us aware of a potentially exploitable bug in Redis during May 2018. We took this disclosure very seriously and devoted resources to properly fixing this issue. We are happy to tell you that Salvatore Sanfilippo (the creator and Lead Developer of open source Redis) made the patch for open source users and contacted all major Redis providers. We have pushed the fix to all our Redis Enterprise offerings: Cloud, VPC and Software. What is the bug? Background: Redis embeds Lua for database-level scripting. The Lua scripting engine has a number ... Read More
RediSearch Update: Aggregation & New Features
Feed: Redis Labs. Author: Kyle Davis. One of the key announcements at RedisConf was the aggregation engine for RediSearch (version 1.1.0). Aggregations are an incredibly powerful feature for a real-time search engine like RediSearch. They allow for data to not only be queried, but summarized mathematically to gain analytical insight. RediSearch aggregations come with the standard toolkit of reducers: Counts Sums Minimum Maximum Standard Deviation Quantile Conceptually, aggregations are comprised of a pipeline of operations. Each operation can be used in any logical order and can be repeated. The basic operations are: Group & Reduce Sort Transform (Apply) Limit Filter ... Read More
Mastering RediSearch / Part III

Feed: Redis Labs. Author: Kyle Davis. Today we’re going to dive quite a bit deeper and make something useful with Node.js, RediSearch and the client library we started in Part II. While RediSearch is a great full-text search engine, it’s much more than that and has extensive power as a secondary index for Redis. Considering this, let’s get a dataset that contains some more field-based data. I’ll be using the TMDB (the movie database) dataset. You can download this dataset from the Kaggle TMDB page. The data is formatted in CSV over two files and has a few features we’re ... Read More
Mastering RediSearch / Part II
Feed: Redis Labs. Author: Kyle Davis. Abstracting RediSearch In our last installment, we started looking at RediSearch, the Redis search engine built as a module. We explored the curious nature of the keys and indexed a single document. In this segment, we’ll lay the groundwork necessary to make working with RediSearch more productive and useful in Node.js. Welcoming RediSearch into Javascript Now, we could certainly bring in all this data using the RediSearch commands directly or with the bindings, but with a large amount of data using direct syntax becomes difficult to manage. Let’s take some time to develop a ... Read More
How fast is flash?

Feed: Redis Labs. Author: Kyle Davis. Exploring the performance of Redis Enterprise with Flash memory extension. With Redis Enterprise, we recently enabled the ability to extend your RAM based storage into flash memory. Don’t confuse this with some form of persistence, this is a way to let Redis break out of the bounds of the server RAM and into Flash storage as needed. With the advances in Flash memory (NVMe-based SSD storage), the performance becomes very viable, although not quite as quick as RAM alone. This allows you to have hybrid storage – data moves between fast RAM and Flash ... Read More
Mastering RediSearch / Part I

Feed: Redis Labs. Author: Kyle Davis. I’ve been working with the RediSearch module quite a bit lately — it’s one of the more fascinating developments in the Redis ecosystem and it deserves it’s own series. If you’re not familiar with RediSearch and its features, you should take a look at this video. If you’ve built an application with Redis as a primary data store, you’ve likely experienced both the elation and confusion of the native data types. When you understand the data types, you realize that much of your data fits neatly into one of them. However, many common application patterns require ... Read More
The Tech Behind Dynamic Email Marketing

Feed: Redis Labs. Author: Kyle Davis. E-mail marketing is an effective way to reach customers, but it comes with a variety of challenges that can be difficult to overcome. The nature of email is static after delivery: once the message has left your e-mail server, you have very little control — or do you? Let’s take a look at a technique that can provide some level of dynamic control after you send your e-mail. Imagine you’re sending out an email with three deals. You’re not sure which deals will perform the best. After the email is sent, you’ll have a very clear ... Read More
Video Walk-Throughs for Redis Enterprise

Feed: Redis Labs. Author: Kyle Davis. We’ve been busy working on some video walk-throughs of common situations with Redis Enterprise. In the first video, we talk about how to replicate between different clusters. This feature is useful in several circumstances: recovering from a disaster, speeding up read performance, geo-located databases, and making duplicates for testing or reporting. This can be done entirely from the Redis Enterprise UI and is a short point-and-click operation. Honestly, it’s pretty neat to see replication between clusters occur so seamlessly. In the second video, we go over some setup techniques to achieve high availability. What’s interesting ... Read More
From Reds to RediSearch: Redis search got a lot more interesting

Feed: Redis Labs. Author: Kyle Davis. This post originally appeared on Kyle Davis’ Medium. Have you heard? Redis 4.0 is out. That means modules. Not just in the theoretical, shouldn’t-run-in-production sense. It means primetime. Throw’em on your production server and go. Note: Redis (the database) and Node.js (the JS runtime) both use the term “module” for different concepts — the language herein has to be a bit laboured to be clear and differentiate. Recently, I wrote about Reds, the Node.js/Redis search engine module. Reds is quite good — I’ve built entire web services around it and they run really quickly. However, Node.js is ... Read More
Recent Comments