百科狗-知识改变命运!
--

如何评价RethinkDB?和MongoDB,Redis有什么区别?

泡在奶味里1年前 (2023-12-20)阅读数 5#综合百科
文章标签脚本命令

RethinkDB 简直是 NoSQL 中的黑科技,被网友誉为"MongoDB done things right",卖点是 实时性。

比如:

+ 自带 Admin UI,就是数据库在跑的时候,后台有个非常棒的管理界面,可以直接用上面的 consle 查询

+ UI 上 一键 sharding 和 replica,方便的令人发指。

+ 支持 table 间 join,甚至是 distributed join(斜眼看了下 MongoDB)。

+ Unix pipe 形式的 query language。有点像 pyspark 的那种操作,简单易懂,好调试。

+ 最新的2.1版本加入牛 X 的 Raft 算法(可以理解为 consensus algorithm中的 Paxo)。

+ 支持的 driver 齐全。这比较邪门,用户量不算怎么大,什么 Dart, Elixir, Lua, Nim, Haskell 甚至 Common Lisp 的 driver 都有。

适合场景:

+ 实时。所以游戏挺适合的。

+ SSD 硬盘。

缺点:

+ 还是比较早期,一般 query 比 MongoDB 要慢3倍甚至更多。考虑到他们团队才17个人,和 MongoDB 的规模不能比,给几年时间,说不定能干翻 MongoDB。

redis 执行 xxx.luaxxx.lua 脚本如何传参数。格式是什么

Memcached是以LiveJurnal旗下DangaInteractive公司的BardFitzpatric为首开发的高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数据全部丢失。Memcached使用C语言开发,在大多数像Linux、BSD和Solaris等POSIX系统上,只要安装了libevent即可使用。Memcached的客户端软件实现非常多,包括C/C++,PHP,Java,Python,Ruby,Perl,Erlang,Lua等。当前Memcached使用广泛,除了LiveJournal以外还有Wikipedia、Flickr、Twitter、Youtube和WordPress等。

在Redis中执行Lua脚本有两种方法:eval和evalsha

1.eval

eval 脚本内容 key个数 key列表 参数列表

如果Lua脚本较长,还可以使用redis-cli-eval直接执行文件。

客户端如果想执行Lua脚本,首先在客户端编写好Lua脚本代码,然后把脚本作为字符串发送给服务端,服务端会将执行结果返回给客户端。

2.evalsha

将Lua脚本加载到Redis服务端,得到该脚本的sha1校验和,evalsha命令使用sha1作为参数可以直接执行对应的Lua脚本,避免每次发送Lua脚本的开销。这样客户端就不需要每次执行脚本内容,而脚本也会常驻在服务端,脚本内容得到了复用。

加载脚本: script load命令可以将脚本内容加载到Redis内存中。

lua的Redis API

lua可以使用redis.call函数实现对Redis的访问

redis.call(“set”,”hello”,”world”)

redis.call(“get”,”hello”)

除此之外Lua还可以使用redis.pcall函数实现对Redis的调用,redis.call和redis.pcall的不同在于,如果redis.call执行失败,那么脚本执行结束会直接返回错误,而redis.pcall会忽略错误继续执行脚本。

Lua脚本功能为Redis开发和运维人员带来的如下三个好处:

1.Lua脚本在Redis中是原子执行的,执行过程中间不会插入其他命令。

如何评价RethinkDB?和MongoDB,Redis有什么区别?

2.Lua脚本可以帮助开发和运维人员创造出自己定制的命令,并可以将这些命令常驻在Redis内存中,实现复用的效果。

3.Lua脚本可以将多条命令一次性打包,有效地减少网络开销。

Redis如何管理Lua脚本

1.script load

此命令用于将Lua脚本加载到Redis内存中

2.script exists

scripts exists sha1 [sha1 …]

此命令用于判断sha1是否已经加载到Redis内存中

3.script flush

此命令用于清除Redis内存已经加载的所有Lua脚本,在执行script flush后,sha1不复存在。

4.script kill

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)