Using the Redis NoSql database with .NET Part 8: messaging


In the previous post we looked at transactions in Redis. A transaction is a collection of database operations that are executed as a unit. The commands of a transaction are executed atomically, meaning that the process is not interrupted by an external operation. The commands either pass or fail together. Redis has at least partial implementation of transactions. We can start and execute transactions but if one or more commands fail then the other members are still executed. In other words there is no rollback mechanism. Redis also offers a concurrency check through the WATCH command if we want to perform the transaction on an unchanged set of resources.

Redis also offers a basic messaging system which will be the topic of this post.

Read more of this post

Using the Redis NoSql database with .NET Part 7: transactions


In the previous post we looked at the hash data type in Redis. Hashes are key-value collections like dictionaries in .NET or maps in Java. For a given Redis key hashes can store multiple key-value pairs. Hashes offer a certain degree of object-oriented design where an object, such as a product or customer can be described by key-values like “id”: 23, “name”: “Unknown LTD” and so on. We can use the string data type to store the properties of an object as a JSON string as we saw before in this series. However, if you need to access the individual properties of an object then a hash can be a more suitable option.

We’ve now discussed all available data types in Redis. We’ll now turn our attention to transactions.

Read more of this post

Using the Redis NoSql database with .NET Part 6: the hash data type in C#


In the previous post we looked at the sorted set data type in Redis. A sorted set is not simply a set where the values are sorted. It is a container of unique strings where each member also has a score. The members in the sorted set are sorted by their scores. Sorted sets can be applicable for scores reached in a competition, the time it took to complete various activities, the energy lost during a physical exercise etc., i.e. anywhere where a member also has a numeric value attached to it. We also discussed the basics of persistence and how it is configured for the Windows Redis service through a configuration file.

In this post we’ll look at one remaining data type in Redis, namely hashes.

Read more of this post

Using the Redis NoSql database with .NET Part 5: the sorted set data type


In the previous post we looked at the set data type in Redis. Sets are similar to list but they only store unique strings. Duplicates are discarded and the items are case sensitive. This means that we can add “monday” and “MONDAY” in the same set. Another difference compared to lists is that sets are not guaranteed to hold the items in the same order as they were entered. Redis has commands to perform a couple of common set-related actions such as calculating the union, difference and intersection of two or more sets. We also looked at two techniques to extract the key names from the Redis database: KEY and SCAN where SCAN is a cursor based iterator and is the recommended method since it’s a lighter operation for the database.

In this post we’ll first talk a little bit about persistence to disk in Redis. Then we’ll move onto a discussion of the sorted set data type.

Read more of this post

Using the Redis NoSql database with .NET Part 4: key name searches and the set data type


In the previous post we looked at the list data type in Redis. Lists are implemented as linked lists in Redis meaning that each item has a link to its immediate neighbours, i.e. the previous and the next items. It’s efficient to operate on the first or last item in a linked list: add to and retrieve from the head or tail of a linked list is very fast. Redis lists therefore lend themselves very well to queues and stacks. Index-based operations, e.g. getting the 3rd item in the list, are not as efficient. We then looked at a couple of list-related Redis commands such as LINSERT, RPOP and LRANGE. We also looked at how to add the Redis folder to the environment variables on Windows so that we can call upon the Redis executables without having to navigate to the folder in a command prompt.

In this post we’ll first look at how to retrieve the key names in our Redis database. Then we’ll continue our discussion of the Redis data types with sets.

Read more of this post

Using the Redis NoSql database with .NET Part 3: lists in Redis


In the previous post we first installed the Redis server as a Windows service. It’s cumbersome having to execute redis-server.exe every time we want to communicate with the database so we’ll have it running as a service. Then we went on to explore the string data type in Redis. String is the most versatile data type since we can store pretty much anything as a string in one way or another: messages like “Hello”, JSON serialised custom objects, base 64 encoded byte arrays for e.g. file content, numbers etc. We looked at a couple of string-related commands like STRLEN or APPEND.

In this post we will first add Redis to the environment variables so that we can reach the executables without navigating to the Redis folder in the command prompt. Then we’ll look at how lists are implemented in Redis.

Read more of this post

Using the Redis NoSql database with .NET Part 2: the Redis Windows service and some basic string commands


In the previous post we introduced the topic of this series: Redis with .NET. We first went through some basic characteristics of Redis. It is a NoSql key-value store with in-memory storage and access by default. The records are stored by unique keys where each unique key has a value attached. It has many good features like fast data access, data replication, scripting, high-availability clusters, various data types and much more. Normally Redis is installed on Linux servers but we’ll go with the officially unsupported Windows 64-bit port maintained by Microsoft. That will fit most .NET developers out there who are the main target group of this series. We started the Redis server and client and tried three of the most basic Redis commands: GET, SET and DEL that vaguely correspond to SELECT, INSERT/UPDATE and DELETE statements in SQL.

In this post we will first install the Redis server as a Windows service and then test a couple of Redis commands related to strings.

Read more of this post

Using the Redis NoSql database with .NET Part 1: introduction and setup


Traditional relational databases have received a couple of strong competitors in recent years. According to the db-engines website the 10 most widely used data stores are still dominated by relational databases and it will probably be the case for long years to come. However, there are many alternatives out there that can take their place in an application as its backing store. They can either act as the main data store of the application, i.e. where all the records are persisted for later retrieval. Alternatively they serve a different but very specific storage role that is not well suited for relational databases. In other words the application is backed up by e.g. SQL Server or MongoDb as its main data storage but delegates other storage needs, such as caching to say Memcached.

Read more of this post


A great site

Elliot Balynn's Blog

A directory of wonderful thoughts

HarsH ReaLiTy

A Good Blog is Hard to Find

Softwarearchitektur in der Praxis

Wissenswertes zu Webentwicklung, Domain-Driven Design und Microservices

Technology Talks

on Microsoft technologies, Web, Android and others

Software Engineering

Web development

Disparate Opinions

Various tidbits

chsakell's Blog


Once Upon a Camayoc

Bite-size insight on Cyber Security for the not too technical.

Guru N Guns's

OneSolution To dOTnET.

Johnny Zraiby

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.

%d bloggers like this: