redis的基础指令集
// 创建一个string 键
set key value
// 获取一个键的内容
get key
// 删除一个键
del key
// 判断一个键是否存在
exists key
// 获取所有的键
keys *
// 获取满足条件的所有的键
keys Na* keys *me keys *a*
// 设置键的过期时间
expire key 10
// 查询过期时间 (当键过期之后 过期时间为-2 get获取为空)
ttl key
// 创建一个list键并在头部添加元素
lpush key value
// 创建一个list键并在尾部添加元素
rpush key value
// 查看list中的所有元素
lrange key 0 -1
// 删除list中的最后一个元素
rpop key
// 删除list中的第一个元素
lpop key
// 获取列表中元素的个数
llen key
// 删除list中指定的列表元素
llen key value
// 删除list中的最后num个元素
rpop key num
// 删除list中的第num个元素
lpop key num
// 只保留list中第num1个到第num2个元素
lrange key num1 num2
// 创建无序集合或者添加一个无序元素到集合 (添加的元素不能重复)
sadd key value
// 获取无序集合中的元素
smembers key
// 判断元素是否在无序集合中
sismember key value
// 删除无序集合中的指定元素
srem key value
// 计算给定无序集合的交集
sinter key1 key2
// 计算给定无序集合的并集
sunion key1 key2
// 计算给定无序集合的差集
sdiff key1 key2
// 创建有序集合或添加一个有序元素到集合
zadd key num value
// 查看有序集合中的所有元素
zrange key 0 -1
// 只查看有序集合中所有元素的数字
zrange key 0 -1 withscores
// 查看有序集合中某一元素的数字
zscore key value
// 查看有序集合中某一元素的排名 (从小到大)
zrank key value
// 查看有序集合中某一元素的排名 (从大到小)
zrevrank key value
// 添加一个Hash键
hset object key value
// 查看Hash中键对应的值
hget object key
// 查看Hash对象中的所有键值对
hgetall object
// 判断Hash中是否存在指定的键
hexists object key
// 获取Hash对象中所有的键
hkeys object
C#对Redia数据库操作
// 连接到 Redis 服务器
var redis = ConnectionMultiplexer.Connect("localhost");
// 获取数据库
var db = redis.GetDatabase();
// 设置值
db.StringSet("myKey", "myValue");
// 获取值
string value = db.StringGet("myKey");
Console.WriteLine(value); // 输出:myValue
// 删除键
db.KeyDelete("myKey");
// 关闭连接
redis.Close();
// 判断键是否存在
bool keyExists = db.KeyExists(key);
// 获取所有键
IEnumerable<RedisKey> keys = redis.GetServer("localhost:6379").Keys();
// 过滤以 "me" 结尾的键
var keysWithMeEnding = keys.Where(key => key.EndsWith("me"));
StringBuilder stringBuilder = new StringBuilder();
// 输出所有键
foreach (var key in keys)
{
stringBuilder.Append(key);
}
MessageBox.Show(stringBuilder.ToString());
This operation is not available unless admin mode is enabled: FLUSHDB
除非启用管理模式,否则此操作不可用:FLUSHDB
// 删除当前数据库中的所有键
redis.GetServer("localhost:6379").FlushDatabase();
// 获取键的剩余过期时间
TimeSpan? timeToLive = db.KeyTimeToLive(key);
if (timeToLive.HasValue)
{
MessageBox.Show($"键的过期时间: {timeToLive.Value.TotalSeconds} 秒");
}
else
{
MessageBox.Show("键不存在或没有关联的过期");
}
// 设置键的值并指定过期时间为 10 秒
db.StringSet("myKey", "myValue", TimeSpan.FromSeconds(10));
// 在列表头部插入值
db.ListLeftPush("myList", "value1");
// 或者在列表尾部插入值
db.ListRightPush("myList", "value2");
// 获取列表的所有元素
RedisValue[] listValues = db.ListRange(listName);
// 获取列表的第num1个到第num2个元素
RedisValue[] elements = db.ListRange(listName, num1, num2);
StringBuilder stringBuilder = new StringBuilder();
// 输出列表的元素
foreach (var value in elements)
{
stringBuilder.Append(value.ToString());
stringBuilder.Append("\n");
}
MessageBox.Show(stringBuilder.ToString());
// 获取列表的第num个元素
RedisValue Element = db.ListGetByIndex(listName, num);
MessageBox.Show(Element);
// 删除列表中值为 "value" 的元素
db.ListRemove(listName, value);
// 删除列表中的第一个元素
db.ListLeftPop(listName);
// 删除列表中的最后一个元素
db.ListRightPop(listName);
// 只保留列表中的第num1个到第num2个元素 (num2>num1&&num2<length)
db.ListTrim(listName, num1, num2);
// 获取列表中元素的数量
long listLength = db.ListLength(listName);
无序集合操作
// 向集合中添加一个元素
db.SetAdd(setName, element);
// 获取集合中的所有元素
RedisValue[] setElements = db.SetMembers(setName);
StringBuilder sb = new StringBuilder();
// 输出集合中的所有元素
foreach (var element in setElements)
{
sb.Append(element.ToString());
sb.Append("\n");
}
MessageBox.Show(sb.ToString());
// 获取集合中元素的数量
long setSize = db.SetLength(setName);
// 计算并输出集合的交集
var intersection = db.SetCombine(SetOperation.Intersect, set1, set2);
StringBuilder sb = new StringBuilder();
foreach (var element in intersection)
{
sb.Append(element.ToString());
sb.Append("\n");
}
MessageBox.Show(sb.ToString());
// 计算并输出集合的并集
var union = db.SetCombine(SetOperation.Union, set1, set2);
StringBuilder sb = new StringBuilder();
foreach (var element in union)
{
sb.Append(element.ToString());
sb.Append("\n");
}
MessageBox.Show(sb.ToString());
// 计算并输出集合的差集
var difference = db.SetCombine(SetOperation.Difference, set1, set2);
StringBuilder sb = new StringBuilder();
foreach (var element in difference)
{
sb.Append(element.ToString());
sb.Append("\n");
}
MessageBox.Show(sb.ToString());
有序集合操作
// 向有序集合中添加成员
db.SortedSetAdd(SortedSetName, member, num);
// 获取有序集合的所有元素
var sortedSetElements = db.SortedSetRangeByRank(SortedSetName);
StringBuilder sb = new StringBuilder();
// 输出有序集合的所有元素
foreach (var element in sortedSetElements)
{
sb.Append(element.ToString());
sb.Append("\n");
}
MessageBox.Show(sb.ToString());
// 获取有序集合的所有元素和分数
var sortedSetEntries = db.SortedSetRangeByRankWithScores(SortedSetName);
StringBuilder sb = new StringBuilder();
// 输出有序集合的所有元素和分数
foreach (var entry in sortedSetEntries)
{
sb.Append(entry.Element.ToString());
sb.Append(":");
sb.Append(entry.Score.ToString());
sb.Append("\n");
}
MessageBox.Show(sb.ToString());
// 获取指定成员在有序集合中的排名(从 0 开始)
long? rank = db.SortedSetRank(SortedSetName, memberToFind);
if (rank.HasValue)
{
MessageBox.Show($"{memberToFind}在本集合中排名: {rank}");
}
else
{
MessageBox.Show($"{memberToFind}不在本集合中");
}
// 获取指定成员在有序集合中的分数
double? score = db.SortedSetScore(SortedSetName, memberToFind);
if (score.HasValue)
{
MessageBox.Show($"{memberToFind}在本集合中数字: {score}");
}
else
{
MessageBox.Show($"{memberToFind}不在本集合中");
}
// 删除指定成员
bool removed = db.SortedSetRemove(SortedSetName, memberToRemove);
if (removed)
{
MessageBox.Show($"{memberToRemove} 删除成功");
}
else
{
MessageBox.Show($"{memberToRemove}不在本集合中");
}
哈希Hash操作
// 设置哈希元素的字段和对应的值
db.HashSet(hashKey, field, value);
// 获取哈希元素的所有键值对
var hashEntries = db.HashGetAll(hashKey);
StringBuilder sb = new StringBuilder();
// 输出所有键值对
foreach (var entry in hashEntries)
{
sb.Append($"字段: {entry.Name}, 值: {entry.Value}");
sb.Append("\n");
}
MessageBox.Show(sb.ToString());
// 获取指定字段的值
RedisValue value = db.HashGet(hashKey, field);
if (!value.IsNull)
{
MessageBox.Show($"字段 '{field}' 的值为: {value}");
}
else
{
MessageBox.Show($"字段 '{field}' 不存在或者值为 null。");
}
// 删除指定字段及其对应的值
bool fieldDeleted = db.HashDelete(hashKey, fieldToDelete);
if (fieldDeleted)
{
MessageBox.Show($"字段 '{fieldToDelete}' 及其对应的值已删除。");
}
else
{
MessageBox.Show($"字段 '{fieldToDelete}' 不存在,未执行删除操作。");
}
程序源码地址:
https://download.csdn.net/download/qq1084517825/88886895
2024.2.28