redis集群:从lua脚本中的smembers中删除键(redis cluster: delete keys from smembers in lua script)
以下函数从smembers中删除键,它们不是通过eval参数传递的,在redis集群中是否正确?
def ClearLock(): key = 'Server:' + str(localIP) + ':UserLock' script = ''' local keys = redis.call('smembers', KEYS[1]) local count = 0 for k,v in pairs(keys) do redis.call('delete', v) count = count + 1 end redis.call('delete', KEYS[1]) return count ''' ret = redisObj.eval(script, 1, key)
The below function delete keys from smembers, they are not passed by eval arguments, is it proper in redis cluster?
def ClearLock(): key = 'Server:' + str(localIP) + ':UserLock' script = ''' local keys = redis.call('smembers', KEYS[1]) local count = 0 for k,v in pairs(keys) do redis.call('delete', v) count = count + 1 end redis.call('delete', KEYS[1]) return count ''' ret = redisObj.eval(script, 1, key)
原文:https://stackoverflow.com/questions/37000252
更新时间:2023-04-02 13:04
最满意答案
Guid guidID; bool hasGUID = clients.Any(c => Guid.TryParse(c.Id, out guidID));
Guid guidID; bool hasGUID = clients.Any(c => Guid.TryParse(c.Id, out guidID));
相关问答
更多-
使用参数化查询,例如: var query = this.ObjectContext.Persons.Where( "PersonId = @1", new [] { person.Key } ); Use a parameterized query, e.g.: var query = this.ObjectContext.Persons.Where( "PersonId = @1", new [] { person.Key } );
-
Guid guidID; bool hasGUID = clients.Any(c => Guid.TryParse(c.Id, out guidID)); Guid guidID; bool hasGUID = clients.Any(c => Guid.TryParse(c.Id, out guidID));
-
问题很可能出现在DocumentDatas表的FileDataSyncId字段的映射中。 为了使Contains成功,该字段必须是数据库中的uniqueidentifier ,以及.NET端的Guid 。 该错误消息表明.NET端将该字段视为String ,从而导致问题。 The problem is most likely in the mapping of the FileDataSyncId field of the DocumentDatas table. In order for the Cont ...
-
我怀疑你实际上是想要得出一个结果,所以你需要的是 context.ApplicationId = DataBaseEntities.Applications .Single(a => a.Name == applicationName).Id.ToString(); 现在,如果您的数据层不理解Single ,您可以尝试 context.ApplicationId = DataBaseEntities.Applications .First(a => a.Name == applicatio ...
-
public static bool IsGuidInList(List
guids, string guidToFind) { try { var guid = new Guid(guidToFind.Trim()); return guids .Select(x => { Guid result; retu ... -
你得到这个错误是因为Linq代码是在SQL中转换的。 在SQL中,方法Guid.Parse不存在。 在Where(t.OpenUserId == new Guid("00000000-0000-0000-0000-000000000000"))的示例中, 您不解析任何东西 (调用任何方法),只是创建一个支持的新Guid 。 一种方法是Parse Guid外面的Where 。 var userId = Guid.Parse(Session["LogedUserID"] as string); // conve ...
-
切换您的逻辑并将LinkGuid参数转换为Guid: private string getFileLocation(string LinkGuid) { try { Guid search = Guid.Parse(LinkGuid); ISESEntities context = new ISESEntities(); string query = (from f in context.tbFileAttachments ...
-
我找到了答案 - 我需要使用预测。 这就是我想出的: var query = Session.CreateCriteria(typeof (MyClass)) .Add(Restrictions.Like( Projections.Cast(NHibernateUtil.String, Projections.Property("Id")), '%'+keywords+"%")); I found the answer - I need to use project ...
-
LINQ:将Guid转换为字符串(LINQ: Convert Guid to string)[2023-09-13]
查询数据库后,需要通过另一个查询运行该列表。 var result = (from menu in menuBus.GetMenus() orderby menu.InternalName select new { Value = menu.ID, Te ... -
Linq加入静态guid(Linq join static guid)[2023-07-27]
目前还不完全清楚ContactSet如何连接到查询中的其他集,但您可以通过使用where而不是join来解决此问题: var guid = new Guid("D48457AB-C0B5-E211-838F-000C29DFF60A"); var list = ( from li in context.ListSet join lm in context.ListMemberSet on li.ListId.Value equals lm.ListId.Id join ci in contex ...