Fixing style

This commit is contained in:
Sebastien Ros
2014-10-21 21:32:47 -07:00
parent d7628aaf61
commit b77f3a4c24
6 changed files with 61 additions and 70 deletions

View File

@@ -1,5 +1,4 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using Orchard;
using Orchard.Caching.Services; using Orchard.Caching.Services;
using Orchard.Environment.Configuration; using Orchard.Environment.Configuration;
using Orchard.Environment.Extensions; using Orchard.Environment.Extensions;
@@ -9,62 +8,55 @@ using Orchard.Redis.Extensions;
using StackExchange.Redis; using StackExchange.Redis;
using System; using System;
namespace Orchard.Redis.Caching namespace Orchard.Redis.Caching {
{
[OrchardFeature("Orchard.Redis.Caching")]
[OrchardSuppressDependency("Orchard.Caching.Services.DefaultCacheStorageProvider")]
public class RedisCacheStorageProvider : Component, ICacheStorageProvider
{
public const string ConnectionStringKey = "Orchard.Redis.Cache";
private readonly ShellSettings _shellSettings; [OrchardFeature("Orchard.Redis.Caching")]
private readonly IRedisConnectionProvider _redisConnectionProvider; [OrchardSuppressDependency("Orchard.Caching.Services.DefaultCacheStorageProvider")]
private readonly string _connectionString; public class RedisCacheStorageProvider : Component, ICacheStorageProvider {
public const string ConnectionStringKey = "Orchard.Redis.Cache";
public IDatabase Database { private readonly ShellSettings _shellSettings;
get { private readonly IRedisConnectionProvider _redisConnectionProvider;
return _redisConnectionProvider.GetConnection(_connectionString).GetDatabase(); private readonly string _connectionString;
public IDatabase Database {
get {
return _redisConnectionProvider.GetConnection(_connectionString).GetDatabase();
}
}
public RedisCacheStorageProvider(ShellSettings shellSettings, IRedisConnectionProvider redisConnectionProvider) {
_shellSettings = shellSettings;
_redisConnectionProvider = redisConnectionProvider;
_connectionString = _redisConnectionProvider.GetConnectionString(ConnectionStringKey);
Logger = NullLogger.Instance;
}
public T Get<T>(string key) {
var json = Database.StringGet(GetLocalizedKey(key));
return JsonConvert.DeserializeObject<T>(json);
}
public void Put<T>(string key, T value) {
var json = JsonConvert.SerializeObject(value);
Database.StringSet(GetLocalizedKey(key), json, null);
}
public void Put<T>(string key, T value, TimeSpan validFor) {
var json = JsonConvert.SerializeObject(value);
Database.StringSet(GetLocalizedKey(key), json, validFor);
}
public void Remove(string key) {
Database.KeyDelete(key);
}
public void Clear() {
Database.KeyDeleteWithPrefix(GetLocalizedKey("*"));
}
private string GetLocalizedKey(string key) {
return _shellSettings.Name + ":Cache:" + key;
} }
} }
public RedisCacheStorageProvider(ShellSettings shellSettings, IRedisConnectionProvider redisConnectionProvider)
{
_shellSettings = shellSettings;
_redisConnectionProvider = redisConnectionProvider;
_connectionString = _redisConnectionProvider.GetConnectionString(ConnectionStringKey);
Logger = NullLogger.Instance;
}
public T Get<T>(string key) {
var json = Database.StringGet(GetLocalizedKey(key));
return JsonConvert.DeserializeObject<T>(json);
}
public void Put<T>(string key, T value)
{
var json = JsonConvert.SerializeObject(value);
Database.StringSet(GetLocalizedKey(key), json, null);
}
public void Put<T>(string key, T value, TimeSpan validFor)
{
var json = JsonConvert.SerializeObject(value);
Database.StringSet(GetLocalizedKey(key), json, validFor);
}
public void Remove(string key)
{
Database.KeyDelete(key);
}
public void Clear()
{
Database.KeyDeleteWithPrefix(GetLocalizedKey("*"));
}
private string GetLocalizedKey(string key)
{
return _shellSettings.Name + ":Cache:" + key;
}
}
} }

View File

@@ -1,10 +1,10 @@
using StackExchange.Redis; using StackExchange.Redis;
namespace Orchard.Redis.Configuration { namespace Orchard.Redis.Configuration {
public interface IRedisConnectionProvider : ISingletonDependency { public interface IRedisConnectionProvider : ISingletonDependency {
ConnectionMultiplexer GetConnection(string connectionString); ConnectionMultiplexer GetConnection(string connectionString);
string GetConnectionString(string service); string GetConnectionString(string service);
} }
} }

View File

@@ -6,6 +6,7 @@ using Orchard.Logging;
using StackExchange.Redis; using StackExchange.Redis;
namespace Orchard.Redis.Configuration { namespace Orchard.Redis.Configuration {
public class RedisConnectionProvider : IRedisConnectionProvider { public class RedisConnectionProvider : IRedisConnectionProvider {
private static ConcurrentDictionary<string, ConnectionMultiplexer> _connectionMultiplexers = new ConcurrentDictionary<string, ConnectionMultiplexer>(); private static ConcurrentDictionary<string, ConnectionMultiplexer> _connectionMultiplexers = new ConcurrentDictionary<string, ConnectionMultiplexer>();
private readonly ShellSettings _shellSettings; private readonly ShellSettings _shellSettings;

View File

@@ -1,12 +1,9 @@
using System; using System;
using StackExchange.Redis; using StackExchange.Redis;
namespace Orchard.Redis.Extensions namespace Orchard.Redis.Extensions {
{ public static class RedisDatabaseExtensions {
public static class RedisDatabaseExtensions public static void KeyDeleteWithPrefix(this IDatabase database, string prefix) {
{
public static void KeyDeleteWithPrefix(this IDatabase database, string prefix)
{
if (database == null) { if (database == null) {
throw new ArgumentException("Database cannot be null", "database"); throw new ArgumentException("Database cannot be null", "database");
} }
@@ -33,8 +30,9 @@ namespace Orchard.Redis.Extensions
var retVal = database.ScriptEvaluate("return table.getn(redis.call('keys', ARGV[1]))", values: new RedisValue[] { prefix }); var retVal = database.ScriptEvaluate("return table.getn(redis.call('keys', ARGV[1]))", values: new RedisValue[] { prefix });
if (retVal.IsNull) if (retVal.IsNull) {
return 0; return 0;
}
return (int)retVal; return (int)retVal;
} }

View File

@@ -6,7 +6,7 @@ Version: 1.0
OrchardVersion: 1.0 OrchardVersion: 1.0
Description: Provides Redis integration with Orchard. Description: Provides Redis integration with Orchard.
Features: Features:
Orchard.Redis Orchard.Redis
Name: Redis Name: Redis
Description: Used to provide Redis related functionalities. Description: Used to provide Redis related functionalities.
Category: Hosting Category: Hosting
@@ -14,13 +14,13 @@ Features:
Name: Redis Message Bus Name: Redis Message Bus
Description: A message bus implementation using Redis pub/sub. Description: A message bus implementation using Redis pub/sub.
Category: Hosting Category: Hosting
Dependencies: Orchard.MessageBus, Orchard.Redis Dependencies: Orchard.MessageBus, Orchard.Redis
Orchard.Redis.OutputCache: Orchard.Redis.OutputCache:
Name: Redis Output Cache Name: Redis Output Cache
Description: An output cache storage provider using Redis. Description: An output cache storage provider using Redis.
Category: Performance Category: Performance
Dependencies: Orchard.OutputCache, Orchard.Redis Dependencies: Orchard.OutputCache, Orchard.Redis
Orchard.Redis.Caching: Orchard.Redis.Caching:
Name: Redis Cache Name: Redis Cache
Description: Business data cache using Redis. Description: Business data cache using Redis.
Category: Performance Category: Performance

View File

@@ -46,7 +46,7 @@ namespace Orchard.Redis.OutputCache {
var value = JsonConvert.SerializeObject(cacheItem); var value = JsonConvert.SerializeObject(cacheItem);
Database.StringSet(GetLocalizedKey(key), value, TimeSpan.FromSeconds(cacheItem.ValidFor)); Database.StringSet(GetLocalizedKey(key), value, TimeSpan.FromSeconds(cacheItem.ValidFor));
} }
public void Remove(string key) { public void Remove(string key) {
Database.KeyDelete(GetLocalizedKey(key)); Database.KeyDelete(GetLocalizedKey(key));
} }
@@ -57,7 +57,7 @@ namespace Orchard.Redis.OutputCache {
public CacheItem GetCacheItem(string key) { public CacheItem GetCacheItem(string key) {
string value = Database.StringGet(GetLocalizedKey(key)); string value = Database.StringGet(GetLocalizedKey(key));
if(String.IsNullOrEmpty(value)) { if (String.IsNullOrEmpty(value)) {
return null; return null;
} }