Azure Redis Cache vs Redis Cloud service on Azure - azure

I need to use it in a .NET (webapi) app & using stackexchange.redis nuget package.
Appreciate if someone please point me to appropriate resources for following -
1) Can I choose any of Azure Redis cache or Redis cloud service if I interface through stackexchange.redis nuget?
2) Azure Redis Cache vs Redis Cloud - differences & implications of choosing one over the other - if this info already available.
Thanks

Disclaimer: I work for Redis Labs, the company providing Redis Cloud.
1) Can I choose any of Azure Redis cache or Redis cloud service if I interface through stackexchange.redis nuget?
Yes - both Azure Redis and Redis Cloud provide a Redis database that you can use with the StackEchange.Redis client from your app.
2) Azure Redis Cache vs Redis Cloud - differences & implications of choosing one over the other - if this info already available.
While both are essentially a hosted Redis service, there are several differences between them. Most notably, Azure Redis Cache is deeply integrated in the Azure platform so you have everything (management, metrics, etc...) accessible from your management portal. OTOH, Redis Cloud is cloud-agnostic (it is available on multiple clouds) and offers more features than any other Redis-as-a-Service service. I think that the fact that Redis Cloud is the only service that can scale infinitely and w/o downtime/migration is perhaps the strongest differentiator, but feel free to refer to this comparison table for a high level overview: https://redislabs.com/redis-comparison

Related

Installing RediSearch in Azure Cache for Redis

I have an Azure Cache for Redis instance running. I want to perform search on the data stored in the Redis cache using "RediSearch". For using RediSearch, it seems that installation of Redis Stack or a suitable extension is necessary. Is there a way to install this extension to the instance in Azure Cloud.
https://redis.io/docs/stack/search/
Or is there a way to do search without any installations. Please advise.
One cannot add RediSearch to an existing Azure Cache for Redis instance at this time.
There are several alternatives:
You can spin up an Azure Cache for Redis Enterprise tier instance with RedisSearch capability enabled
Provisioning Enterprise Tier resource
Provisioning RediSearch
You can spin it up on Redis Cloud, on Azure infrastructure (limited regions)
Sign up to Redis Cloud for free
Creating a free database on Redis Cloud
You can self-manage by installing Redis Stack on a VM or container instance in Azure
Amiram.

Alternative solution for Azure Service Fabric distributed cache

I have an application running in Service Fabric with multiple nodes. All the running nodes share some cache data using distributed caching available in Service Fabric.
Now, I am looking to move out from Service Fabric due to cost issues.
What would be a good solution for me where I can also maintain caching between multiple instances ( like the distributed cache in Service Fabric).
I need to install it in an Azure environment.
If you're looking for an alternative managed by Microsoft, the best choice would be Azure Redis Cache.
More info:
https://learn.microsoft.com/en-us/azure/azure-cache-for-redis/

Highly available, redundant Redis-cluster over kubernetes

The objective is to create a highly available redis cluster using kubernetes for a nodeJS client. I have already created the architecture as below:
Created a Kubernetes cluster of Kmaster with 3 nodes (slaves).
Then I created statefulsets and persistent volumes (6 - one for each POD).
Then created Redis pods 2 on each node (3 Master, 3 replicas of respective master).
I need to understand the role of Redis Sentinel hereafter, how does it manage the monitoring, scaling, HA for the redis-cluster PODs across the nodes. I understand Sentinel should be on each node and doing its job but what should be the right architecture here?
P.S. I have created a local setup for now, but ultimately this goes on Azure so any suggestions w.r.to az is also welcome.
Thanks!
From an Azure perspective, you have two options and if you are very specific to option two but are looking for the Sentinel architecture piece, there is business continuity and high availability options in both IaaS (Linux VM scale sets) and PaaS services that go beyond the Sentinel component.
Azure Cache for Redis (PaaS) where you choose & deploy your desired service tier (Premium Tier required for HA) and connect your client applications. Please see: Azure Cache for Redis FAQ and Caching Best Practice.
The second option is to deploy a solution (as you have detailed) as an IaaS solution built from Azure VMs. There are a number of Redis Linux VM images to choose from the Azure Marketplace or there is the option to create a Linux VM OS image from your on-premise solution and migrate that to Azure. The Sentinel component is enabled on each server (master, slavea, and slaveb, ...). There are networking and other considerations too. For building a system from scratch, please see: How to Setup Redis Replication (with Cluster-Mode Disabled) in CentOS 8 – Part 1 and How to Setup Redis For High Availability with Sentinel in CentOS 8 – Part 2

Implementation of Service Broker API for Cassandra and Aerospike in open source Cloud Foundry

I need to use Cassandra and Aerospike as services with open source cloud foundry. Service Broker implementations with PCF i.e. Pivotal Cloud Foundry, are available as tiles for most DBs. Can these be used with open source cloud foundry? If yes, how? If not, how to go about implementing the service broker API for my use case? Are there any already available?
Aerospike is available on PCF - https://discuss.aerospike.com/t/aerospike-now-available-on-pivotal-cloud-foundry-pcf-aerospike-blog-post-october-19-2016/3524
the write up then refers to:
https://network.pivotal.io/products/aerospike

Server side state management in Windows Azure

I'm working on a distributed application that runs on Windows Azure, but I'm new of this kind of environment. I have a question about server-side state management.
Where should I store global almost static data?
Because it is a distributed environment if a user makes a request to the application, there is no guarantee that subsequent requests will be routed to the same server and so I think that I should use Sql Azure or Table Storage Session Provider (but I've read that can be performance issues) to store the data.
I can also use Windows Azure AppFabric Caching that enables session maintenance.
What is the better solution to store global information that don't need to be secured? Is there something similar to "Application" (like Application["key"] = value)?
Thanks
Please see my responses on the following thread:
Microsoft Azure .NET 4.5 WebForms App : Session TimeOut / InProc / Single Instance
Specifics are below:
If you want to maintain session state you have to use one of the
following options
SQL Session State Provider using Azure SQL
Azure Table Session State
Session State with Azure Redis Cache
You can find details on how to do this at the following links:
Session State Management in Windows Azure Web Roles
Session state with Azure Redis cache in Azure App Service
The easiest way in my opinion is using Azure Redis Cache as noted in
the link above.
Let me know if this helps!
Definitely at that time perhaps, but now Azure Storage Tables :)

Resources