草庐IT

redis - ServiceStack - Redis session 累积

coder 2023-11-08 原文

在 AppHost.cs 中

container.Register<IRedisClientsManager>(
         c => new PooledRedisClientManager(redisConnectionString));

我没有看到这些 session 在 30 秒内得到清理。

public class MyUserSession: AuthUserSession {
  public override void OnAuthenticated(IServiceBase authService, 
          IAuthSession session, IAuthTokens tokens, 
          Dictionary <string, string > authInfo) {
          ...do stuff here
          authService.SaveSession(session, TimeSpan.FromSeconds(30));
  }
}

我是不是在 redis 配置中遗漏了什么或者可能设置错了?此外,如果我第二次登录,它们会开始为同一用户累积。如果当前用户有一个现有 session ,我们是否应该在此方法中进行清理?

最佳答案

那只会保存那个时间的 session ,如果再次保存 session ,如果默认到期,它将被覆盖。

您可以通过重写 AppHostBase.OnSaveSession() 来控制每次保存 Session 的时间,例如:

public override void OnSaveSession(
    IRequest httpReq, IAuthSession session, TimeSpan? expiresIn = null)
{
    base.OnSaveSession(session, TimeSpan.FromSeconds(30));
}

关于redis - ServiceStack - Redis session 累积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28259119/

有关redis - ServiceStack - Redis session 累积的更多相关文章

  1. ruby - Ruby 中的累积数组和 - 2

    计算数组累积和的最巧妙、最像Ruby的方法是什么?例子:[1,2,3,4].cumulative_sum应该返回[1,3,6,10] 最佳答案 classArraydefcumulative_sumsum=0self.map{|x|sum+=x}endend 关于ruby-Ruby中的累积数组和,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1475808/

  2. Redis序列化和java存入Redis数据序列化反序列化总结 - 2

    背景:最近考虑java代码数据在保存redis时,通常要配置序列化,才能保存到redis中,然而我们知道Redis中也有序列化(RDB和AoF两种形式),有点混淆总结一下。java中数据保存redis过程序列化的原因是什么?解释:java虚拟机内存和redis内存是两块独立的内存空间,分属于两个不同的进程,不同的两个应用,在网络传输层表现为数据传输是用TCP二进制流进行传输的序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。 而跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。java中如何序列化?packagecom.gisquest.cloud.oauth

  3. Javascript将对象数组累积到对象数组 - 2

    我有一个对象数组:varmyArray=[{"date":"03/01/2017","value":2},{"date":"04/01/2017","value":6},{"date":"05/01/2017","value":4}];我需要累加值并保持同一个数组更新值结果是这样的varmyArray=[{"date":"03/01/2017","value":2},{"date":"04/01/2017","value":8//(2+6)},{"date":"05/01/2017","value":12//(2+6+4)}];我知道这是存在的[0,1,2,3,4].reduce(fu

  4. javascript - node.js + socket.io + redis + rails — 实时应用程序 - 2

    我需要向我的应用程序(RubyOnRails)添加实时性,因此,我认为更好的方法是使用node.js+socket.io+redis。我在后端(node.js)中有这个application.js文件varapp=require('http').createServer();vario=require('socket.io');varredis=require('redis').createClient();var_=require('underscore')._;io=io.listen(app);io.configure(function(){io.set("transports"

  5. javascript - 谷歌地图多重叠加无累积不透明度 - 2

    我有一张map,上面有多个圆圈相互交叉(下面是一个只有两个圆圈的例子,但至少有大约100个圆圈)。当它们交叉时,不透明度加倍,所以当我在5或6个圆圈之间交叉时,它就会变成大约100%的不透明度。有没有办法让第二个圆圈不显示“超过”第一个圆圈?其实不这么认为,但也许有人已经预料到这样的事情......左:我有什么--------------------------------------------右:我想要什么以防万一你想玩:http://jsfiddle.net/ZWt6w/varpopulationOptions={strokeWeight:0,fillColor:'#FF0000

  6. Redis【缓存雪崩,缓存穿透,缓存击穿】详解 - 2

    用户请求的缓存正常流程图 上图是一个正常的简单的缓存流程!!!土豆用户去访问某宝,某宝请求redis看看缓存中有没有土豆用户请求的数据,如果redis中有该数据的缓存,则直接返回数据展示出来供应用户的需求,如果redis中没有该用户请求的数据,redis就会做一件事,去数据库中进行查找,数据库中查到值了之后做两件事情,第一件事:把数据返回到redis缓存中。第二件事:把查询到的数据返回到某宝中供用户的需求缓存雪崩: 举个例子:用户在双十二的时候,想去某宝抢购商品,用户点进去进入首页展示出了各种各样的商品,这些商品大部分都是缓存在redis中,对应了着很多key,加入这些key的缓存时间是三个小

  7. go - Go中的二级缓存(内存+redis)实现 - 2

    我正在尝试写一个二级缓存(内存+redis),但是当一个key高并发访问时遇到了瓶颈,我尝试对每个key都使用mutex,但是这样增加了cpu很多因为loadFromDB需要100-200毫秒。func(s*Store)GetJsonObjectWithExpire(keystring,objinterface{},ttlint,fStoreLoadFunc)error{//firstreadfrommemoryv,ok:=s.mem.Get(key)ifok{ifv.Outdated(){to:=deepcopy.Copy(obj)gos.updateMem(key,to,ttl,f

  8. arrays - 使用 Go 递归在数组中累积/追加值时出现问题 - 2

    首先,这是我第一个使用Go的非虚拟程序。任何建议将不胜感激。代码说明:我想从对信息进行分页的API中检索所有信息。所以我想遍历所有页面以获取所有信息。这是我目前所做的:我有这两个功能:funcrequest(requestData*RequestData)[]*ProjectsResponse{client:=&http.Client{Timeout:time.Second*10,}projects:=[]*ProjectsResponse{}innerRequest(client,requestData.URL,projects)returnprojects}funcinnerReq

  9. json - 在redis中将结构存储为字符串 - 2

    由于Redis仅存储字符串,我想知道如何使用Go将Struct转换为字符串,从而实现与Javascript的JSON.stringify等效的功能。我尝试过类型转换:string(the_struct)但这会导致错误。 最佳答案 encoding/json包可用于轻松地将struct转换为JSON字符串,反之亦然(将JSON字符串解析为struct)。简单示例(在GoPlayground上尝试):typePersonstruct{NamestringAgeint}funcmain(){p:=Person{"Bob",23}//Str

  10. ruby - IPTables 和不同的 Redis 客户端的奇怪问题 - 2

    我正在尝试弄清楚如何连接到Redis客户端,该客户端应该阻止端口6379上通过TCP的所有Redis连接。我正在使用的ruby​​客户端和telnet都可以连接和执行命令。我使用的golang客户端不能,我真的很困惑为什么。这是我的iptables定义:root@server:~#iptables-LChainINPUT(policyACCEPT)targetprotoptsourcedestinationACCEPTall--localhostanywhereACCEPTall--anywhereanywherectstateRELATED,ESTABLISHEDACCEPTtcp-

随机推荐