Skip to content

Commit d02f854

Browse files
committed
Cache.Redis/Cache.CsRedis 修复 GetAllByPrefixAsync(key) 方法会自动获取所有 Key 的 bug;更新 Console 示例
1 parent 93f08c7 commit d02f854

File tree

5 files changed

+22
-9
lines changed

5 files changed

+22
-9
lines changed

Sample/Senparc.CO2NET.Sample.Consoles/Program.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,13 @@ and limitations under the License.
162162
var cache = servierProviderScope.ServiceProvider.GetRequiredService<IBaseObjectCacheStrategy>();
163163
Console.WriteLine($"依赖注入缓存策略: {cache}{(cache == cacheStrategy ? "成功" : "失败")})");
164164

165+
//存入缓存
166+
await cache.SetAsync("Setting", Config.SenparcSetting);
165167

166-
Console.WriteLine($"SenparcSetting: {Config.SenparcSetting.ToJson(true)}");
168+
//读取缓存
169+
var settingFromCache = await cache.GetAsync<SenparcSetting>("Setting");
170+
171+
Console.WriteLine($"从缓读取 SenparcSetting: {settingFromCache.ToJson(true)}");
167172

168173

169174
Console.ReadLine();

src/Senparc.CO2NET.Cache.CsRedis/ObjectCacheStrategy/RedisObjectCacheStrategy.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ and limitations under the License.
4747
修改标识:Senparc - 20230527
4848
修改描述:v1.1.4 RedisObjectCacheStrategy.Get() 方法添加纯字符串的判断
4949
50+
修改标识:Senparc - 20240910
51+
修改描述:v1.2.5 修复 GetAllByPrefixAsync(key) 方法会自动获取所有 Key 的 bug
5052
----------------------------------------------------------------*/
5153

5254
using System;
@@ -374,7 +376,7 @@ public override async Task UpdateAsync(string key, object value, TimeSpan? expir
374376
/// </summary>
375377
public IList<T> GetAllByPrefix<T>(string key)
376378
{
377-
var keyPattern = GetFinalKey("*");//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
379+
var keyPattern = GetFinalKey(key);//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
378380
var keys = base.Client.Keys(/*database: Client.GetDatabase().Database,*/ pattern: keyPattern/*, pageSize: 99999*/);
379381
List<T> list = new List<T>();
380382
foreach (var fullKey in keys)
@@ -395,7 +397,7 @@ public IList<T> GetAllByPrefix<T>(string key)
395397
/// </summary>
396398
public async Task<IList<T>> GetAllByPrefixAsync<T>(string key)
397399
{
398-
var keyPattern = GetFinalKey("*");//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
400+
var keyPattern = GetFinalKey(key);//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
399401
var keys = base.Client.Keys(/*database: Client.GetDatabase().Database,*/ pattern: keyPattern/*, pageSize: 99999*/);
400402
List<T> list = new List<T>();
401403
foreach (var fullKey in keys)

src/Senparc.CO2NET.Cache.CsRedis/Senparc.CO2NET.Cache.CsRedis.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
4-
<Version>1.2.4</Version>
4+
<Version>1.2.5</Version>
55
<AssemblyName>Senparc.CO2NET.Cache.CsRedis</AssemblyName>
66
<RootNamespace>Senparc.CO2NET.Cache.CsRedis</RootNamespace>
77
<GeneratePackageOnBuild Condition=" '$(Configuration)' == 'Release' ">true</GeneratePackageOnBuild>
@@ -25,7 +25,8 @@
2525
v0.1.0 创世
2626
v0.5.2 BaseRedisObjectCacheStrategy 析构函数进行 null 值判断,并添加 "#{Cache_Redis_Configuration}#" 过滤判断
2727
v1.1.4 RedisObjectCacheStrategy 和 RedisHashSetObjectCacheStrategy.Get() 方法添加纯字符串的判断
28-
</PackageReleaseNotes>
28+
v1.2.5 修复 GetAllByPrefixAsync(key) 方法会自动获取所有 Key 的 bug
29+
</PackageReleaseNotes>
2930
<RepositoryUrl>https://github.com/Senparc/Senparc.CO2NET</RepositoryUrl>
3031
<Configurations>Debug;Release;Test</Configurations>
3132
</PropertyGroup>

src/Senparc.CO2NET.Cache.Redis/ObjectCacheStrategy/RedisObjectCacheStrategy.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ and limitations under the License.
4747
修改标识:Senparc - 20230527
4848
修改描述:v4.1.3 RedisObjectCacheStrategy 方法添加纯字符串的判断
4949
50+
修改标识:Senparc - 20240910
51+
修改描述:v4.2.5 修复 GetAllByPrefixAsync(key) 方法会自动获取所有 Key 的 bug
52+
5053
----------------------------------------------------------------*/
5154

5255
using System;
@@ -370,7 +373,7 @@ public override async Task UpdateAsync(string key, object value, TimeSpan? expir
370373
/// </summary>
371374
public IList<T> GetAllByPrefix<T>(string key)
372375
{
373-
var keyPattern = GetFinalKey("*");//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
376+
var keyPattern = GetFinalKey(key);//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
374377
var keys = GetServer().Keys(database: Client.GetDatabase().Database, pattern: keyPattern, pageSize: 99999);
375378
List<T> list = new List<T>();
376379
foreach (var fullKey in keys)
@@ -391,7 +394,7 @@ public IList<T> GetAllByPrefix<T>(string key)
391394
/// </summary>
392395
public async Task<IList<T>> GetAllByPrefixAsync<T>(string key)
393396
{
394-
var keyPattern = GetFinalKey("*");//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
397+
var keyPattern = GetFinalKey(key);//获取带Senparc:DefaultCache:前缀的Key([DefaultCache]
395398
var keys = GetServer().Keys(database: Client.GetDatabase().Database, pattern: keyPattern, pageSize: 99999);
396399
List<T> list = new List<T>();
397400
foreach (var fullKey in keys)

src/Senparc.CO2NET.Cache.Redis/Senparc.CO2NET.Cache.Redis.csproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
4-
<Version>4.2.4</Version>
4+
<Version>4.2.5</Version>
55
<AssemblyName>Senparc.CO2NET.Cache.Redis</AssemblyName>
66
<RootNamespace>Senparc.CO2NET.Cache.Redis</RootNamespace>
77
<GeneratePackageOnBuild Condition=" '$(Configuration)' == 'Release' ">true</GeneratePackageOnBuild>
@@ -102,7 +102,9 @@
102102
v3.6.103 支持新版本 CO2NET,优化异步方法
103103
v3.11.2 BaseRedisObjectCacheStrategy 析构函数进行 null 值判断,并添加 "#{Cache_Redis_Configuration}#" 过滤判断
104104
v4.1.3 RedisObjectCacheStrategy 和 RedisHashSetObjectCacheStrategy.Get() 方法添加纯字符串的判断
105-
</PackageReleaseNotes>
105+
v4.2.5 修复 GetAllByPrefixAsync(key) 方法会自动获取所有 Key 的 bug
106+
107+
</PackageReleaseNotes>
106108
<RepositoryUrl>https://github.com/Senparc/Senparc.CO2NET</RepositoryUrl>
107109
<Configurations>Debug;Release;Test</Configurations>
108110
</PropertyGroup>

0 commit comments

Comments
 (0)