Page tree

CAST supports Redis via its NoSQL for .NET extension. Details about how this support is provided for .NET source code is discussed below.

Supported Client Libraries

Supported Operations

OperationMethods Supported
Insert
  • StackExchange.Redis.IDatabase.StringSet
  • StackExchange.Redis.IDatabaseAsync.StringSetAsync
  • StackExchange.Redis.IDatabase.Add
  • StackExchange.Redis.IDatabase.GeoAdd'
  • StackExchange.Redis.IDatabase.HashSet
  • StackExchange.Redis.IDatabase.SetCombineAndStore
  • ServiceStack.Redis.RedisClient.AddItemToList
  • ServiceStack.Redis.RedisClient.AddItemToSet
  • ServiceStack.Redis.RedisClient.AddRangeToList
  • ServiceStack.Redis.RedisClient.AddRangeToSet
  • ServiceStack.Redis.RedisClient.CreateHashSet
  • ServiceStack.Redis.RedisClient.PushItemToList
  • Microsoft.Extensions.Caching.Redis.RedisCache.Set
  • Microsoft.Extensions.Caching.Redis.RedisCache.SetAsync
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Set
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.SetAsync
Update
  • StackExchange.Redis.IDatabase.StringIncrement
  • StackExchange.Redis.IDatabaseAsync.StringIncrementAsync
  • StackExchange.Redis.IDatabase.KeyMigrate
  • ServiceStack.Redis.RedisClient.IncrementValueInHash
Select
  • StackExchange.Redis.IDatabase.StringGet
  • StackExchange.Redis.IDatabaseAsync.StringGetAsync
  • StackExchange.Redis.IDatabase.GeoRadius
  • StackExchange.Redis.IDatabaseAsync.GeoRadiusAsync
  • StackExchange.Redis.IDatabaseAsync.HashGetAllAsync
  • StackExchange.Redis.IDatabase.HashGetAll
  • StackExchange.Redis.IDatabase.HashScan
  • StackExchange.Redis.IDatabase.SetScan
  • StackExchange.Redis.IDatabase.Get
  • StackExchange.Redis.IDatabase.HashExists
  • StackExchange.Redis.IDatabase.SetCombineAndStore
  • ServiceStack.Redis.RedisClient.GetHashCount
  • ServiceStack.Redis.RedisClient.GetHashKeys
  • ServiceStack.Redis.RedisClient.GetListCount
  • ServiceStack.Redis.RedisClient.GetSetCount
  • Microsoft.Extensions.Caching.Redis.RedisCache.Get
  • Microsoft.Extensions.Caching.Redis.RedisCache.GetAsync
  • Microsoft.Extensions.Caching.Redis.RedisCache.GetAndRefresh
  • Microsoft.Extensions.Caching.Redis.RedisCache.GetAndRefreshAsync
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Get
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAndRefresh
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAndRefreshAsync
Delete 
  • StackExchange.Redis.IDatabase.KeyDelete
  • StackExchange.Redis.IDatabase.Remove
  • StackExchange.Redis.IDatabase.RemoveAll
  • StackExchange.Redis.IDatabase.KeyDump
  • ServiceStack.Redis.RedisClient.RemoveItemFromSet
  • ServiceStack.Redis.RedisClient.RemoveItemFromList
  • ServiceStack.Redis.RedisClient.PopItemFromList
  • Microsoft.Extensions.Caching.Redis.RedisCache.Remove
  • Microsoft.Extensions.Caching.Redis.RedisCache.RemoveAsync
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Remove
  • Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.RemoveAsync

Objects

Icon Description

DotNet Redis Connection

DotNet Redis Collection

DotNet Unknown Redis Connection

 

DotNet Unknown Redis Collection 

Links are created for transaction and function point needs:

Link typeSource and destination of link Methods supported
belongsTo

From DotNet Redis Collection object to DotNet Redis Connection object


useInsertLinkBetween the caller .NET Class / Method objects and Dotnet Redis Collection objects


  • StringSet
  • StringSetAsync
  • Add
  • GeoAdd
  • HashSet
  • SetCombineAndStore
  • AddItemToList
  • AddItemToSet
  • AddRangeToList
  • AddRangeToSet
  • CreateHashSet
  • PushItemToList
  • GetSetCount
  • SetAsync
 useDeleteLink
  • KeyDelete
  • Remove
  • RemoveAll
  • KeyDump
  • RemoveItemFromSet
  • RemoveItemFromList
  • PopItemFromList
  • RemoveAsync

useSelectLink

  • StringGet
  • StringGetAsync
  • GeoRadius
  • GeoRadiusAsync
  • HashGetAllAsync
  • HashGetAll
  • Sort
  • HashScan
  • SetScan
  • Get
  • GetHashCount
  • GetHashKeys
  • GetListCount
  • GetAsync
  • GetAndRefresh
  • GetAndRefreshAsync
useUpdateLink
  • StringIncrement
  • StringIncrementAsync
  • IncrementValueInHash

What results can you expect?

Once the analysis/snapshot generation has completed, you can view the results in the normal manner (for example via CAST Enlighten). Some examples are shown below.

Redis Connections and Collections

public class TestRedis 
    {

        // Configure Redis cache options
        RedisCacheOptions cacheOptions = new RedisCacheOptions("localhost");

        // Create a Redis cache instance
        public RedisCache cache = new RedisCache(cacheOptions);

        // Generate a cache key
        var cacheKey = "Company";

        public void deleteCompany()
        {   
            // Remove the cached item
            cache.Remove(cacheKey);
        }
    }

Insert Operation

public void insertCompany()
        {   
            // Store a value in the cache
            DistributedCacheEntryOptions options = new DistributedCacheEntryOptions();
            byte byteArray = Encoding.UTF8.GetBytes("1, TATA, IND");
            cache.Set(cacheKey, byteArray, options);
        }

Select Operation

public void selectCompany()
        {   
            // Retrieve the value from the cache
            var cachedValue = cache.Get(cacheKey);
        }
       

Update Operation

// Generate a cache key
var cacheKey = "myCounter";
public void update_()
        {   
            // Retrieve the value from the cache
            newValue = redisDb.StringIncrement(cacheKey);
        }

Delete Operation

public void deleteCompany()
        {   
            // Remove the cached item
            cache.Remove(cacheKey);
        }

Limitations

  • Cases in which the name is not resolved, Unknown connection/collection object will get created


  • No labels