<NME> README.md
<BEF> **StackExchange.Redis.Extensions** is a library that extends [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) allowing you a set of functionality needed by common applications. The library is signed and completely compatible with the **.NET Standard 2.0, .NET Framework 4.6.1, .NET Framework 4.7.2, .NET Core 3.x, .NET 5.0, .NET 6.0** 




## What can it be used for?
Caching of course. Instead of use directly [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) could be easier use ``ÌCacheClient```

For example:

- Support to Hash methods (https://redis.io/commands/hset);
- Sort methods (https://redis.io/commands/sort);
- List methods (https://redis.io/commands/lpush);
- Support for multiple database;
- Search Keys into Redis;
- Retrieve Redis Server information;
- Async methods;
- Connection pooling;
- Auto purge connections;
- SetPop;
- Profiling Session Provider;



[Documentation](doc/README.md) is composed of articles and guidance detailing how to get the most out of StackExchange.Redis.Extensions



### Release

![.NET Core](https://github.com/imperugo/StackExchange.Redis.Extensions/actions/workflows/dotnetcore.yml/badge.svg)

Latest release is available on NuGet.

| Channel                  | Status                                                       |
| ------------------------ | ------------------------------------------------------------ |
| Nuget (Core)             | [![NuGet Status](http://img.shields.io/nuget/v/StackExchange.Redis.Extensions.Core.svg?style=flat)](https://www.nuget.org/packages/StackExchange.Redis.Extensions.Core/) |
| Nuget (Json.NET)         | [![NuGet Status](http://img.shields.io/nuget/v/StackExchange.Redis.Extensions.Newtonsoft.svg?style=flat)](https://www.nuget.org/packages/StackExchange.Redis.Extensions.Newtonsoft/) |
| Nuget (MsgPack)          | [![NuGet Status](http://img.shields.io/nuget/v/StackExchange.Redis.Extensions.MsgPack.svg?style=flat)](https://www.nuget.org/packages/StackExchange.Redis.Extensions.MsgPack/) |
| Nuget (Protobuf)         | [![NuGet Status](http://img.shields.io/nuget/v/StackExchange.Redis.Extensions.Protobuf.svg?style=flat)](https://www.nuget.org/packages/StackExchange.Redis.Extensions.Protobuf/) |
| Nuget (UTF8Json)         | [![NuGet Status](http://img.shields.io/nuget/v/StackExchange.Redis.Extensions.Utf8Json.svg?style=flat)](https://www.nuget.org/packages/StackExchange.Redis.Extensions.Utf8Json/) |
| Nuget (System.Text.Json) | [![NuGet Status](http://img.shields.io/nuget/v/StackExchange.Redis.Extensions.System.Text.Json.svg?style=flat)](https://www.nuget.org/packages/StackExchange.Redis.Extensions.System.Text.Json/) |



### Q&A

For questions or issues do not hesitate to [raise an issue](https://github.com/imperugo/StackExchange.Redis.Extensions/issues/new/choose) or [get in touch](https://twitter.com/imperugo).

### Contributing

Thanks to all the people who already contributed!

<a href="https://github.com/imperugo/StackExchange.Redis.Extensions/graphs/contributors">
  <img src="https://contributors-img.web.app/image?repo=imperugo/StackExchange.Redis.Extensions" />
</a>

### License
StackExchange.Redis is Copyright ©  [Ugo Lattanzi](https://www.linkedin.com/in/imperugo/) and other contributors under the MIT license.
```

```csharp
container.Register(Component.For<ISerializer>()
				.ImplementedBy<NewtonsoftSerializer>()
				.LifestyleSingleton());

container.Register(Component.For<ICacheClient>()
				.ImplementedBy<StackExchangeRedisCacheClient>()
				.LifestyleSingleton());

```

That's a cool feature that is implemented into ICacheClient implementation:

```csharp
IList<Tuple<string, string>> values = new List<Tuple<string, string>>();

values.Add(new Tuple<string, string>("key1","value1"));
values.Add(new Tuple<string, string>("key2","value2"));
values.Add(new Tuple<string, string>("key3","value3"));

bool added = sut.AddAll(values);
```

## Can I search keys into Redis?

<MSG> fixed a typo in readme
<DFF> @@ -4,7 +4,7 @@ StackExchange.Redis.Extensions is a library that extends [StackExchange.Redis](h
 
 
 ## What can it be used for?
-Caching of course. Instead of use directly [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) could be easier use ``ÌCacheClient```
+Caching of course. Instead of use directly [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) could be easier use `ICacheClient`
 
 For example:
 
@@ -85,9 +85,13 @@ You can use it registering the instance with your favorite Container. Here an ex
 ```
 
 ```csharp
-container.Register(Component.For<ISerializer>()
				.ImplementedBy<NewtonsoftSerializer>()
				.LifestyleSingleton());
+container.Register(Component.For<ISerializer>()
+				.ImplementedBy<NewtonsoftSerializer>()
+				.LifestyleSingleton());
 
-container.Register(Component.For<ICacheClient>()
				.ImplementedBy<StackExchangeRedisCacheClient>()
				.LifestyleSingleton());
+container.Register(Component.For<ICacheClient>()
+				.ImplementedBy<StackExchangeRedisCacheClient>()
+				.LifestyleSingleton());
 
 ```
 
@@ -146,7 +150,13 @@ var cachedUsers = myCacheClient.GetAll<User>(new {"key1","key2","key3"});
 That's a cool feature that is implemented into ICacheClient implementation:
 
 ```csharp
-IList<Tuple<string, string>> values = new List<Tuple<string, string>>();

values.Add(new Tuple<string, string>("key1","value1"));
values.Add(new Tuple<string, string>("key2","value2"));
values.Add(new Tuple<string, string>("key3","value3"));

bool added = sut.AddAll(values);
+IList<Tuple<string, string>> values = new List<Tuple<string, string>>();
+
+values.Add(new Tuple<string, string>("key1","value1"));
+values.Add(new Tuple<string, string>("key2","value2"));
+values.Add(new Tuple<string, string>("key3","value3"));
+
+bool added = sut.AddAll(values);
 ```
 
 ## Can I search keys into Redis?

fixed a typo in readme