Ever heard of a ‘Redis Cache’? If not, you’ll need to read this post.
I was researching comparisons between Skype for Business and HipChat (the Data Center version) for an upcoming blog post. Along the way, I discovered that HipChat uses a Redis cache in its server-side deployments. A Redis cache…wow, hadn’t even heard that name for a while. Then I realized I hadn’t addressed the topic on this blog at all!
Don’t worry; the Skype for Business vs. HipChat comparison will come soon enough. For now, let’s talk Redis.
What is a Redis Cache?
Redis is a data structure store. According to this Introduction to Redis, you can use it as an in-memory database, cache, and message broker. It’s available for Linux and OSX natively, but Microsoft does maintain a Win-64 port of it (we’ll see why very soon).
HipChat makes use of Redis for caching. It has a Postgres server for database storage; the Redis cache helps to improve message availability and quality.
Can you use a Redis cache in Skype for Business? Yes! It can serve as a data store for Skype4B’s SDN Interface.
What’s that? According to a quote from John A. in MSDN Documentation:
In a pool configuration, Skype for Business SDN Interface needs a data store to share call states for concurrently ongoing calls or for configuration settings among multiple SDN Manager instances, which can be a Redis No-SQL key-value store.
How the SDN Interface Works
SDN stands for Software Defined Network. In the case of Skype for Business, it provides an interface for call diagnostics and QoS. In a nutshell, here’s how it works:
- The SDN Interface collects call data while Skype for Business Server is active.
- The SDN provides this data to other services on the network (e.g. network controllers).
- The other network systems add in their own network traffic data.
- The data pool is analyzed for media quality.
- Analysis results are used to resolve quality & performance issues on the Skype for Business servers.
Think of it like a tune-up constantly running in the background. Its goal? Better performance on calls. It’s part of the reason why Skype for Business calls seem ‘clearer’ over time.
How to Set Up a Skype for Business SDN Interface (with a Redis Cache)
You don’t have to use a Redis cache to set up a Skype for Business SDN. A SQL Server will also do the job. But the setup process is the same, either way.
Fortunately, we have a well-documented set of installation instructions right here:
Installing the SDN Interface – MSDN
As you can see in this screenshot, the Redis cache is one of three options for the SDN Interface’s SDN Manager topology.
Please note: You must have a Redis server set up BEFORE you set up SDN Interface! To set up Redis on a Windows server, use the Windows port on GitHub: Redis on Windows – GitHub.
Redis Cache is Still Available for Skype for Business – But Maybe Not for Long
Now we know. Redis is an available cache option for Skype for Business Server, designed to help its SDN Interface tune media stream performance over time. It’s part of an engine, running in the background, making every Skype4B call better.
Before I go, one caveat: The current Redis port version on GitHub is fairly recent. However, I saw a comment that indicated Microsoft may have decided to archive it. That doesn’t mean Skype for Business users can’t use it, or it will become vulnerable…it’s on GitHub, after all. Other developers will contribute.
However, that does place Redis in something of a limbo. At least as far as Windows Servers are concerned. Redis is open source; it will continue to have a Linux/OS X version for a while.
Perhaps Microsoft is taking another direction with Skype for Business Server 2019. Only time will tell. Once we find out, I’ll make note here, of course.
Does your Skype for Business Server use a Redis cache?