Redis实战 - 1.String和计数器

使用 StackExchange.Redis 访问 Redis
static void Main(string[] args)
{
#region -------->练习测试<----------------------
static void Main(string[] args)
{
using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379"))
{
IDatabase db = redis.GetDatabase();
db.StringSet("name", "Michal Jackson");
string name = db.StringGet("name");
Console.WriteLine(name); //结果:Michal Jackson
db.StringSet("age", "11");
//incr 自增
db.StringIncrement("age");
RedisValue age = db.StringGet("age");
Console.WriteLine(age);//结果:12
//incrby 指定增量
age = db.StringIncrement("age", 5);
Console.WriteLine(age);//结果:17
//decr 自减
age = db.StringDecrement("age");
Console.WriteLine(age);//结果:16
//decrby 指定减量
age = db.StringDecrement("age", 5);
Console.WriteLine(age);//结果:11
//mset 设置多个值
db.StringSet(new KeyValuePair<RedisKey, RedisValue>[]
{
new KeyValuePair<RedisKey, RedisValue>("aa", "aa"),
new KeyValuePair<RedisKey, RedisValue>("bb", "bb"),
new KeyValuePair<RedisKey, RedisValue>("cc", "5"),
});
//mget 取多个值
var values = db.StringGet(new RedisKey[] { "aa", "bb", "cc" });
foreach (RedisValue redisValue in values)
{
Console.Write(redisValue + ",");
}
//结果:aa,bb,5
//exists 是否存在
db.StringSet("name1", "Dave1");
bool existsResult = db.KeyExists("name1");
Console.WriteLine(existsResult); //结果:true
//del 删除
bool delResult = db.KeyDelete("name1");
Console.WriteLine(delResult); //结果:true
existsResult = db.KeyExists("name1");
Console.WriteLine(existsResult); //结果:false
//type 判断类型
db.StringSet("name2", "Dave2");
var typeOfValue = db.KeyType("name2");
Console.WriteLine(typeOfValue); //String
//expire 过期时间
db.StringSet("name3", "Dave3");
db.KeyExpire("name3", TimeSpan.FromSeconds(5));
RedisValue value = db.StringGet("name3");
Console.WriteLine(value); //Dave3
Console.WriteLine("此处等待6秒...");
Thread.Sleep(6 * 1000);
value = db.StringGet("name3"); //啥也没有..
Console.WriteLine(value);
//ex 设置key直接设置有效期
db.StringSet("name4", "Dave4", TimeSpan.FromSeconds(5));
RedisValue value4 = db.StringGet("name4");
Console.WriteLine(value4); //Dave4
Console.WriteLine("此处等待6秒...");
Thread.Sleep(6 * 1000);
value4 = db.StringGet("name4"); //啥也没有..
Console.WriteLine(value4);
//ttl 查看过期时间
db.StringSet("name6", "Dave6", TimeSpan.FromSeconds(5));
for (int i = 1; i < 7; i++)
{
Thread.Sleep(1000);
RedisValue valueTTL = db.StringGet("name6");
var ttl = db.KeyTimeToLive("name6");
if (ttl == null)
{
Console.WriteLine($"{i}秒过后:Dave6已过期");
}
else
{
Console.WriteLine($"{i}秒过后:{valueTTL}还能存活{ttl}秒");
}
}
// 1秒过后:Dave6还能存活00:00:03.9970000秒
// 2秒过后:Dave6还能存活00:00:02.9040000秒
// 3秒过后:Daue6还能存活00:00:01.9040000秒
// 4秒过后:Dave6还能存活00:00:00.9030000秒
// 5秒过后:Dave6已过期
// 6秒过后:Daue6已过期
}
Console.ReadKey();
}
#endregion

浙公网安备 33010602011771号