复述,数据库中怎么避免网络延迟

介绍

复述,数据库中怎么避免网络延迟,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

如何避免复述,数据库网络延迟问题

当你需要使用复述,处理多个命令时,这样时间都消耗到网络延迟上可能就不划算了、下面是几个使用复述时避免网络延迟问题的方法,其实都是不同程度的组合请求:

使用复述,新版本中的可变参数命令

在Redis2.4中,很多命令的参数都开始支持批量了,如大块漂浮植物,ZADD, LPUSH, RPUSH, HMSET等,如果你要对同一个命令带着不同参数调用多次,最好看一看是否其已经支持指参数了。这样你的命令只需要一次发送一次接收就行了。

利用复述的管道机制

复述本身就支持流水线模式接受命令,也就是说你可以一次性向复述,发送多个命令,然后再等着他们的返回。返回的结果和你发送的数据顺序也是一致的。比如最简单的如下例:

$(回波与名词构成动词“PINGrnPINGrnPINGrn";睡眠1)|数控主机6379

+ PONG

+ PONG

+ PONG

如何避免复述,数据库网络延迟问题

当然,这得看你使用的语言客户端是否支持了。

使用即将发布的Lua脚本嵌入功能

Lua脚本嵌入功能能够提供更大的灵活性,你不仅可以自定义组合你的命令。还可以完全在服务端处理你的业务逻辑。而不必将数据取回客户端处理后再请求客户端。

使用那种命令来取出多个关键

这个有点极客了,如果你使用了双层索引的形式在复述中组织你的数据,比如第一层索引是一个列表,里面放置了所有数据关键对应id、第二层是通过这些id查找到具体的价值。

比如典型的,如果我们存储用户数据,可能存储上是用uid作为关键用户信息作为价值的,而我们有一个列表,存储了某种特点用户的uid列表,比如今天的活跃用户,那么当我们需要取出所有活跃用户信息的时候,我们不必先获取到这个列表,再用得到或者multiget去取用户信息。我们完全可以通过一个如下的那种命令来完成数据获取。

redis>HotUser:列表nonexistentkey得到FooBar | id | *

其中不存在的表示按自然顺序排序,这样复述,不会进行相应的排序操作,直接返回结果。

关于复述,数据库中怎么避免网络延迟问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

复述,数据库中怎么避免网络延迟