Redis 是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串、哈希表、列表、集合、有序集合等,并提供了丰富的特性,如事务、发布/订阅、Lua 脚本、持久化、主从复制、哨兵和集群等。在 C#中操作 Redis,StackExchange.Redis 是一个流行的客户端库,提供了简洁且功能强大的 API。
连接到 Redis 服务器:
using StackExchange.Redis;
class Program
{
static void Main()
{
// 创建连接到 Redis 服务器的连接 Multiplexer
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("192.168.1.100,password=RedisPassword,connectTimeout=5000");
// 获取数据库
IDatabase db = redis.GetDatabase();
// 存储数据
db.StringSet("name", "Redis");
// 读取数据
string value = db.StringGet("name");
Console.WriteLine($"Value retrieved from Redis: {value}");
}
}
字符串操作:
Redis 的字符串类型是最基本的键值对类型,支持存储二进制数据。
// 存储字符串
db.StringSet("name", "Redis");
// 读取字符串
string name = db.StringGet("name");
// 设置带有过期时间的字符串
db.StringSet("cachekey", "Redis", TimeSpan.FromSeconds(10));
// 字符串自增
long newValue = db.StringIncrement("counter");
// 字符串自减
long decrementedValue = db.StringDecrement("counter");
哈希表操作:
Redis 的哈希表是一个 string 类型的 field 和 value 的映射表,适合存储对象。
// 存储哈希表字段
db.HashSet("redissetting", "name", "Redis");
db.HashSet("redissetting", "connstr", "192.168.1.100,password=RedisPassword,connectTimeout=5000");
// 读取哈希表字段
string name = db.HashGet("redissetting", "name");
string age = db.HashGet("redissetting", "connstr");
// 获取哈希表中的所有字段和值
HashEntry[] hashEntries = db.HashGetAll("connstr");
foreach (var entry in hashEntries)
{
Console.WriteLine($"Field: {entry.Name}, Value: {entry.Value}");
}
列表操作:
Redis 的列表是一个链表,可以从两端插入和弹出元素。
// 从列表左侧插入元素
db.ListLeftPush("mylist", "item1");
// 从列表右侧插入元素
db.ListRightPush("mylist", "item2");
// 从列表左侧弹出元素
RedisValue leftPop = db.ListLeftPop("mylist");
// 从列表右侧弹出元素
RedisValue rightPop = db.ListRightPop("mylist");
// 获取列表中的所有元素
RedisValue[] listItems = db.ListRange("mylist", 0, -1);
foreach (var item in listItems)
{
Console.WriteLine($"List item: {item}");
}
集合操作:
Redis 的集合是一个无序集合,适合去重。
// 向集合中添加元素
db.SetAdd("myset", "member1");
db.SetAdd("myset", "member2");
// 检查元素是否在集合中
bool isMember = db.SetContains("myset", "member1");
// 获取集合中的所有元素
RedisValue[] setMembers = db.SetMembers("myset");
foreach (var member in setMembers)
{
Console.WriteLine($"Set member: {member}");
}
有序集合操作:
Redis 的有序集合与集合类似,但可以给每个元素附加一个分数,并根据分数排序。
// 向有序集合中添加元素
db.SortedSetAdd("mysortedset", "member1", 10.0);
db.SortedSetAdd("mysortedset", "member2", 20.0);
// 获取有序集合中的所有元素
SortedSetEntry[] sortedSetEntries = db.SortedSetRangeByScoreWithScores("mysortedset", double.MinValue, double.MaxValue);
foreach (var entry in sortedSetEntries)
{
Console.WriteLine($"Sorted set member: {entry.Element}, Score: {entry.Score}");
}
© 版权声明
博主的文章没有高度、深度和广度,只是凑字数。利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章!如若有侵权,请联系博主删除。
喜欢就点个赞吧