s.ToArray()); //反序列化
var jsonValues = new StringBuilder("["); values.ToList().ForEach(item => jsonValues.Append(item).Append(",")); jsonValues.Append("]"); var userList = JsonConvert.DeserializeObject<List<User>>(jsonValues.ToString());
注意以上的代码里,因为每个value是一个json,为了增加转化时的效率,我先处理成json arry再进行反序列化。
这种方案,确实是解决了我目前的问题,然而我注意到了Redis文档里的一段话:
KEYS 的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的 key ,你最好还是用 Redis 的集合结构(set)来代替。
这段话换而言之就是慎用Keys搜索的意思,那么有什么更好的解决方案呢?由于这篇文章我拖得很久了,这里留个问题在末尾,期待有大牛能够帮忙解答,感激不尽。当然还有下一篇内容,我会讲讲我目前的处理方法。
下篇文章里,我会根据Redis作者的博客(资料1)里的做法以及我最后查到的资料,做一个新的方案,请大家到时指教。
参考资料
- Redis作者博客,这是其中一篇讲如何基于Redis实现AutoComplete的文章:http://oldblog.antirez.com/post/autocomplete-with-redis.html
- Redis 第三方管理工具 For Windows:http://redisdesktop.com/
- Redis .NET链接工具的Top20:http://nugetmusthaves.com/Tag/Redis
- Redis命令中文文档:http://redisdoc.com/
文章转自:http://www.cnblogs.com/capqueen/p/HowToUseRedis.html
|