我没试用过redis,所以想请教下redis能不能实现我下面的需求:
res_client.set( key, json_value ); //存储一个json数据 假设json_value是 { a : 1, b : 2, c : 3 } 由于需求,我现在只想修改json_value中的b为5,而不想把整个数据覆盖,类似于hset操作。 问题:不知道node中的redis可不可以实现这样的操作?如果能,麻烦哪位把set和get的代码简单写下,感激不尽!
如果仅仅是想用基本的string类型,set和get操作是不行的。redis作为通用数据库,应给不会提供这样的功能,和业务逻辑太耦合。你自己需要按照业务逻辑设计相应的数据结构。有什么样的场景会有这么高的需求,如果想节省流量的话可以在存储前序列化成二进制再传输。
你可以用Hashes
Hashes
需求是这样的,我需要维护一个在线用户的列表,里面包括了玩家的战斗状态和竞技场的分数。而玩家的战斗状态和竞技场的分数随时都在变化,所以需要经常的进行更新。这样的问题是:如果因为一个玩家的状态更新就去更新整个缓存数据太浪费;2.遇上并发,还不能保证数据的准确性。
我知道redis本身是支持这个的,就是不知道node里面提供的库支不支持
@peiweippww node的redis库用起来还是很爽的,几乎支持所有的redis数据结构和命令,你可以看看。
@peiweippww 学会使用gitHub搜索 node redis,一般star比较多的稳定性应该强很多。https://github.com/dengqiao/recommended-modules推荐的node模块列表作为参考