当前位置: 首页 > news >正文

网站个人中心设计网站建设3合1什么意思

网站个人中心设计,网站建设3合1什么意思,厦门做网站排名,wordpress怎么映射到外网访问控制 Redis stream 的消息数量IntroRedis Stream 是 Redis 5.0 引入的一个新的类型#xff0c;之前我们介绍过使用 Redis Stream 来实现消息队列#xff0c;可以参考之前的文章 使用 Redis Stream 实现消息队列#xff0c;而 Stream 的消息会持久化地内存中#xff0c;如果… 控制 Redis stream 的消息数量IntroRedis Stream 是 Redis 5.0 引入的一个新的类型之前我们介绍过使用 Redis Stream 来实现消息队列可以参考之前的文章 使用 Redis Stream 实现消息队列而 Stream 的消息会持久化地内存中如果我们不控制消息数量的话可能会出现大量的消息存在内存里导致过大的内存占用Redis Stream 5.0 开始支持根据 Max Length 来控制 Stream 的长度消息数量从 6.2 开始支持根据消息 Id 来控制 Stream 的长度默认地消息 Id 是一个时间戳所以使用默认地 Id 也可以理解为按时间来控制 Stream 长度下面我们来看使用示例吧Redis 语法控制 Stream 消息长度有两个 Redis 命令一个是 XTRIM 只做 Trim 操作把不满足要求的消息去除另外一个是 XADD 在添加 Stream 消息的同时做 Trim 操作简化还要多一步 Trim 的操作将添加消息和控制消息长度可以合并为一个操作XTRIM 语法XTRIM key MAXLEN|MINID [|~] threshold [LIMIT count] 使用示例XTRIM mystream MAXLEN 1000 XTRIM mystream MINID 649085820XTRIM mystream MAXLEN ~ 1000Nearly trim不准确可能有些消息该删掉的会保留下来但是执行效率会比 (Exactly Trim) 高一些 XTRIM mystream MINID  649085820 Trimming the stream can be done using one of these strategies:MAXLEN: Evicts entries as long as the streams length exceeds the specified threshold, where threshold is a positive integer.MINID: Evicts entries with IDs lower than threshold, where threshold is a stream ID.XADD 语法XADD key [NOMKSTREAM] [MAXLEN|MINID [|~] threshold [LIMIT count]] *|ID field value [field value ...] 使用示例redis XADD mystream * name Sara surname OConnor 1631546114612-0 redis XADD mystream * field1 value1 field2 value2 field3 value3 1631546114612-1redis XADD mystream MAXLEN ~ 1000 field1 value1 redis XADD mystream MINID ~ 1631546460687 field1 value1 XADD 允许用户在向 Stream 里添加消息的时候控制消息的长度返回值是消息ID默认是一个时间戳语法如上可以 Trim 也可以 不Trim可以根据需要选择Prepare先来准备一些帮助类和公共方法下面的示例是基于 StackExchange.Redis 来实现的RedisHelper获取 Redis 连接internal static class RedisHelper {private static readonly IConnectionMultiplexer ConnectionMultiplexer  StackExchange.Redis.ConnectionMultiplexer.Connect(127.0.0.1:6379);public static IDatabase GetRedisDb(int dbIndex  0){return ConnectionMultiplexer.GetDatabase(dbIndex);} } AddStreamMessage向指定 stream 中添加若干条消息private static async Task AddStreamMessage(string key, int msgCount, Action actionnull) {var redis  RedisHelper.GetRedisDb();for (var i  0; i  msgCount; i){await redis.StreamAddAsync(key, messages, $val-{i});action?.Invoke();} }Max-Length根据 MaxLength 来控制 Stream 长度示例var streamKey  $stream-{nameof(MaxLengthTrim)}; await AddStreamMessage(streamKey, 10); var redis  RedisHelper.GetRedisDb(); Console.WriteLine(await redis.StreamLengthAsync(streamKey));// trim directly await redis.StreamTrimAsync(streamKey, 5); Console.WriteLine(await redis.StreamLengthAsync(streamKey));// add with trim await redis.StreamAddAsync(streamKey, StreamMessageField, Test, maxLength: 3); Console.WriteLine(await redis.StreamLengthAsync(streamKey));await redis.KeyDeleteAsync(streamKey); 输出结果如下Min-ID根据 Min-ID 来控制 Stream 消息长度是 Redis 6.2 新引入的功能目前 StackExchange.Redis 还没有专门的 API 来支持这个功能不过我们可以通过 Execute 来执行 Redis 命令通常这些 Redis 客户端库都会支持直接调用 Redis 命令根据 MinID 控制 Stream 长度示例如下private const string StreamAddCommandName  XADD; private const string StreamTrimCommandName  XTRIM;private const string StreamAddAutoMsgId  *;private const string StreamTrimByMinIdName  MINID;private const string StreamTrimOperator  ;private const string StreamMessageField  message;private static async Task MinMsgIdTrim() {var streamKey  $stream-{nameof(MaxLengthTrim)};await AddStreamMessage(streamKey, 10, ()  Thread.Sleep(1000));var redis  RedisHelper.GetRedisDb();var minId  DateTimeOffset.UtcNow.Subtract(TimeSpan.FromSeconds(5)).ToUnixTimeMilliseconds();Console.WriteLine(await redis.StreamLengthAsync(streamKey));// https://redis.io/commands/xtrim// trim directlyawait redis.ExecuteAsync(StreamTrimCommandName, streamKey,StreamTrimByMinIdName,StreamTrimOperator, // optionalminId);Console.WriteLine(await redis.StreamLengthAsync(streamKey));minId  DateTimeOffset.UtcNow.Subtract(TimeSpan.FromSeconds(2)).ToUnixTimeMilliseconds();// https://redis.io/commands/xadd// add with trimvar result  redis.Execute(StreamAddCommandName, streamKey, StreamTrimByMinIdName, StreamTrimOperator, // optionalminId,StreamAddAutoMsgId, StreamMessageField, Test);Console.WriteLine(await redis.StreamLengthAsync(streamKey));await redis.KeyDeleteAsync(streamKey); } 上述代码输出结果如下More本文主要介绍了控制 Redis Stream 的消息长度除了介绍 Redis 本身的命令之外也是介绍一下如何使用 StackExchange.Redis 实现调用没有 API 支持的 Redis 命令Redis 6.2 之后支持了很多新的特性但是很多库都还太支持了解如何原生调用 Redis 命令有些时候会很有帮助Referenceshttps://redis.io/commands/xaddhttps://redis.io/commands/xtrimhttps://github.com/WeihanLi/SamplesInPractice/blob/master/RedisSample/StreamTrimSample.cs
http://www.yutouwan.com/news/173936/

相关文章:

  • 网站建设与维护是什么意思粉末涂料 技术支持 东莞网站建设
  • 建筑工程网站监理答案网页数据抓取
  • 漳州网站建设技术网站建设公司不赚钱
  • 网站无备案温州在线制作网站
  • wordpress同步发帖谷歌seo搜索优化
  • 平面设计网站排行榜网络管理系统的基本组件包括哪些?
  • 大连网站制作需要多少钱怎样建立自己的网站卖东西
  • 枣庄定制网站建设制作wordpress+左侧菜单
  • 云浮网站建设公司wordpress 360字体插件
  • 备案不关闭网站的方法上海做网站公司做网站的公司
  • 没有公司个人可以做网站卖东西吗h5游戏是什么
  • 微信h5页面制作软件哪个好随州网站优化
  • 景德镇网站网站建设全网分销平台
  • 信誉好的合肥网站推广精仿小米社区wordpress模板
  • 常州网站制作公司有哪些蚌埠集团网站建设
  • 在什么网站可以自承包活来做蒲公英路由做网站
  • 网站都是用什么编写的斯特云流量网站
  • 安溪哪里有学做网站wordpress左侧菜单怎么添加
  • 北京网站建设公司电话网站建设费用 开办费
  • 网站建设开发能力很强的企业建设项目环境影响评价公示网站
  • 那些外国网站设计图多wordpress 有评论时邮箱设置
  • 深圳市建网站公wordpress4.8发布
  • 有没有便宜的网站建设做ic销售的各种网站
  • 夹江移动网站建设wordpress网址缩短
  • 互联网站长名人西安最新活动轨迹
  • 网站建设相关视频教程动态域名申请
  • 动漫设计与制作设计课程站内优化怎么做
  • 网站站内消息设计方案嘉兴市住房和城乡建设局门户网站
  • 用dw做红米网站网站上传后怎么访问
  • 公司怎么搭建自己网站深圳福步外贸论坛