Rails启用的一些服务

每次开始写代码的时候,都先要开启一些服务,比如在console中运行

:~$ redis-server

:~$ bundle exec sidekiq

:~$ rake sunspot:solr:start

:~$ rails server

这些服务的作用是什么,结合资料写下自己的理解。

1.Redis是一个开源的,先进的key-value存储。

它通常被称为数据结构服务器,因为键可以包含字符串、哈希、链表、集合和有序集合。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

2.Sidekiq就是一个用ruby实现的,底层使用redis,的一个异步队列。

在高并发的场景下,使用异步队列可以解决慢io阻塞的问题,当用户请求到达时,先把消息塞在队列中,然后快速返回, 后台任务再从队列中取出消息慢慢处理。

3.Solr

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

在rails中用solr 可以在console中运行

 rake sunspot:solr:start

solr能够提高搜索速度,需要建立索引然后搜索。在model里面设定好需要搜索的字段名和类型然后搜索的时候利用返回的那些id 进行搜索。

由于写到一半,笔记本突然坏掉了,手机不方便帖代码,就不贴例子了。

写这一篇的重点是想说,如果改了的代码是用到sidekiq 和 solr 服务的,一定要重启一下服务,重新建一下索引!! 我已经在这两方面各死两次,觉得代码写的没问题,搜索却出现问题了,首先考虑下是不是用了solr 改了数据却没有重建索引。

你可能感兴趣的:(Rails启用的一些服务)