初探Redis-基础类型String (2)

   

初探Redis-基础类型String

  eg:

  

初探Redis-基础类型String

删除key

  

初探Redis-基础类型String

  eg:

  

初探Redis-基础类型String

设置剩余生存时间

   

初探Redis-基础类型String

  eg:设置firstkey生存时间30秒,并通过ttl查看剩余生存时间。

  

初探Redis-基础类型String

获取剩余生存时间 

  

初探Redis-基础类型String

  eg:

  

初探Redis-基础类型String

设置永久生存

  

初探Redis-基础类型String

 

   eg:

  

初探Redis-基础类型String

获取字符串长度

  

初探Redis-基础类型String

  eg:

  

初探Redis-基础类型String

覆盖指定位置开始处的字符

  

初探Redis-基础类型String

  eg:

  

初探Redis-基础类型String

获取指定位置范围字符串

  

初探Redis-基础类型String

  eg:

  

初探Redis-基础类型String

 

四、字符串(String)简单应用场景

  模拟限量商品秒杀场景,来运用一下redis。采用多线程随机请求限量商品,并且用redis控制商品数量的减少。

1、采用StackExchange.Redis的Nuget包来连接和管理Redis。并封装一套Redis的操作类。

  

初探Redis-基础类型String

2、采用单例模式管理Redis的实例。

  

初探Redis-基础类型String

3、模拟多用户限量秒杀模型。通过Redis的incr和decr操作控制商品数量。

/// <summary> /// 超卖模型 /// </summary> public class OverSell { private static bool IsGoOn = true;//秒杀活动是否结束 public static void Run() { RedisBase.StringService.StringSet("Stock", 10); for (int i = 0; i < 5000; i++) { int k = i; Task.Run(() =>//每个线程就是一个模拟用户请求 { if (IsGoOn) { var index = RedisBase.StringService.StringDecrement("Stock");//-1并且返回 if (index >= 0) { Console.WriteLine($"{k.ToString("000")} Success,Product Index:{index}"); //... } else { if (IsGoOn) { IsGoOn = false; } Console.WriteLine($"{k.ToString("000")} Failed,Product Index:{index}"); } } else { Console.WriteLine($"{k.ToString("000")} Finish......"); } }); } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyydg.html