Maison base de données tutoriel mysql 如何将Sphinx配置成缓存服务器

如何将Sphinx配置成缓存服务器

Jun 07, 2016 pm 04:28 PM
sphinx 如何 服务器 知道 缓存 配置

大家都知道Sphinx是一个全文索引程序,它的高速查询能力也是有目共睹的。除了这些,我们是否还能挖掘点别的功能出来呢?不如作为一个简单的缓存服务器。 先来了解下Sphinx的使用的文件,Sphinx使用的文件包括 .sph, .spa, .spi, .spd, .spp, .spm ,.spl

大家都知道Sphinx是一个全文索引程序,它的高速查询能力也是有目共睹的。除了这些,我们是否还能挖掘点别的功能出来呢?不如作为一个简单的缓存服务器。

Sphinx

先来了解下Sphinx的使用的文件,Sphinx使用的文件包括 .sph, .spa, .spi, .spd, .spp, .spm ,.spl。

  • sph:头文件,保存的是系统的配置文件。
  • spi:保存WordId及指向此WordId对应的文档信息在spd文件的指针, spi文件在检索程序启动时完全加载入内存。 spi文件是分块的,块内排序,块之间也排序。分块的目的应该是为了快速检索到WordId, 因为spi中的WordId是变长压缩的,索引需要先在块级别做二分定位,再在快内解压缩查找。
  • spa:存储DocInfo的文件,检索程序启动时会把此文件加载如内存,sphinx可以指定DocInfo的存储方式:
    • inline:存储到spd文件中。
    • extern:单独存储,就会生成spa文件。
  • spd:文档列表。
  • spp:关键字所在位置列表。
  • spm:在DocInfo中,有一种特殊的属性,叫MVA,多值属性。 Sphinx对此属性特殊处理,需要存储在spm文件中。 检索程序启动时会把此文件加载如内存。 此属性在DocInfo对应位置存储其在此文件中的字节偏移量。
  • spk:killlist
  • spl:索引锁

通过介绍可以得知Sphinx存储的文档的属性,在0.98之前的版本是不存储的,我们是不是可以利用这些数据作为缓存使用呢,根据DocID获取文档的信息。

通过hack搜索服务添加SEARCHD_COMMAND_DOCINFO指令,客户端API添加GetDocinfo函数可以达到预期的效果。

php示例代码:

require 'sphinxapi.php';
$cl = new SphinxClient ();
$cl->SetServer();
$res = $cl->GetDocinfo(1, 'singer');
print_r($res);
Copier après la connexion

结果如下:

Array
(
    [singer_id] => 1
    [singer_name] => 阿牛
    [cate_id] => 1
    [tag_ids] => Array
        (
            [0] => 110
            [1] => 114
            [2] => 127
        )
    [song_number] => 137
    [album_number] => 14
)
Copier après la connexion

Patch文件 : https://gist.github.com/2251422

参考文章

  • sphinx简析
  • sphinx的spx文件格式
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment configurer Dnsmasq comme serveur relais DHCP Comment configurer Dnsmasq comme serveur relais DHCP Mar 21, 2024 am 08:50 AM

Le rôle d'un relais DHCP est de transmettre les paquets DHCP reçus vers un autre serveur DHCP du réseau, même si les deux serveurs se trouvent sur des sous-réseaux différents. En utilisant un relais DHCP, vous pouvez déployer un serveur DHCP centralisé dans le centre réseau et l'utiliser pour attribuer dynamiquement des adresses IP à tous les sous-réseaux/VLAN du réseau. Dnsmasq est un serveur de protocole DNS et DHCP couramment utilisé qui peut être configuré en tant que serveur relais DHCP pour faciliter la gestion des configurations d'hôtes dynamiques sur le réseau. Dans cet article, nous allons vous montrer comment configurer Dnsmasq comme serveur relais DHCP. Sujets de contenu : Topologie du réseau Configuration d'adresses IP statiques sur un relais DHCP D sur un serveur DHCP centralisé

Comprendre Linux Bashrc : fonctions, configuration et utilisation Comprendre Linux Bashrc : fonctions, configuration et utilisation Mar 20, 2024 pm 03:30 PM

Comprendre Linux Bashrc : fonction, configuration et utilisation Dans les systèmes Linux, Bashrc (BourneAgainShellruncommands) est un fichier de configuration très important, qui contient diverses commandes et paramètres qui sont automatiquement exécutés au démarrage du système. Le fichier Bashrc se trouve généralement dans le répertoire personnel de l'utilisateur et est un fichier caché. Sa fonction est de personnaliser l'environnement Bashshell pour l'utilisateur. 1. Environnement de configuration des fonctions Bashrc

Guide des meilleures pratiques pour créer des serveurs proxy IP avec PHP Guide des meilleures pratiques pour créer des serveurs proxy IP avec PHP Mar 11, 2024 am 08:36 AM

Dans la transmission de données sur réseau, les serveurs proxy IP jouent un rôle important, aidant les utilisateurs à masquer leurs véritables adresses IP, à protéger la confidentialité et à améliorer la vitesse d'accès. Dans cet article, nous présenterons le guide des meilleures pratiques sur la façon de créer un serveur proxy IP avec PHP et fournirons des exemples de code spécifiques. Qu'est-ce qu'un serveur proxy IP ? Un serveur proxy IP est un serveur intermédiaire situé entre l'utilisateur et le serveur cible. Il agit comme une station de transfert entre l'utilisateur et le serveur cible, transmettant les demandes et les réponses de l'utilisateur. En utilisant un serveur proxy IP

Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne ? Solution pour laquelle Epic ne peut pas accéder au jeu hors ligne Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne ? Solution pour laquelle Epic ne peut pas accéder au jeu hors ligne Mar 13, 2024 pm 04:40 PM

Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne ? Ce problème a dû être rencontré par de nombreux amis. Lorsque cette invite apparaît, le jeu authentique ne peut pas être démarré. Ce problème est généralement dû à des interférences du réseau et du logiciel de sécurité. Alors, comment doit-il être résolu ? J'aimerais partager la solution avec vous, j'espère que le didacticiel logiciel d'aujourd'hui pourra vous aider à résoudre le problème. Que faire si le serveur Epic ne peut pas accéder au jeu lorsqu'il est hors ligne : 1. Il peut être interféré par un logiciel de sécurité. Fermez la plateforme de jeu et le logiciel de sécurité, puis redémarrez. 2. La seconde est que le réseau fluctue trop. Essayez de redémarrer le routeur pour voir s'il fonctionne. Si les conditions sont correctes, vous pouvez essayer d'utiliser le réseau mobile 5g pour fonctionner. 3. Alors il y en aura peut-être plus

Comment installer l'extension PHP FFmpeg sur le serveur ? Comment installer l'extension PHP FFmpeg sur le serveur ? Mar 28, 2024 pm 02:39 PM

Comment installer l’extension PHPFFmpeg sur le serveur ? L'installation de l'extension PHPFFmpeg sur le serveur peut nous aider à traiter les fichiers audio et vidéo dans les projets PHP et à implémenter des fonctions telles que l'encodage, le décodage, l'édition et le traitement des fichiers audio et vidéo. Cet article explique comment installer l'extension PHPFFmpeg sur le serveur, ainsi que des exemples de code spécifiques. Tout d’abord, nous devons nous assurer que PHP et FFmpeg sont installés sur le serveur. Si FFmpeg n'est pas installé, vous pouvez suivre les étapes ci-dessous pour installer FFmpe

Comment configurer et installer FTPS sur le système Linux Comment configurer et installer FTPS sur le système Linux Mar 20, 2024 pm 02:03 PM

Titre : Comment configurer et installer FTPS dans le système Linux, des exemples de code spécifiques sont requis. Dans le système Linux, FTPS est un protocole de transfert de fichiers sécurisé. Par rapport à FTP, FTPS crypte les données transmises via le protocole TLS/SSL, ce qui améliore la sécurité des données. transmission. Dans cet article, nous présenterons comment configurer et installer FTPS dans un système Linux et fournirons des exemples de code spécifiques. Étape 1 : Installer vsftpd Ouvrez le terminal et entrez la commande suivante pour installer vsftpd : sudo

Mécanisme de mise en cache et pratique d'application dans le développement PHP Mécanisme de mise en cache et pratique d'application dans le développement PHP May 09, 2024 pm 01:30 PM

Dans le développement PHP, le mécanisme de mise en cache améliore les performances en stockant temporairement les données fréquemment consultées en mémoire ou sur disque, réduisant ainsi le nombre d'accès à la base de données. Les types de cache incluent principalement le cache de mémoire, de fichiers et de bases de données. En PHP, vous pouvez utiliser des fonctions intégrées ou des bibliothèques tierces pour implémenter la mise en cache, telles que cache_get() et Memcache. Les applications pratiques courantes incluent la mise en cache des résultats des requêtes de base de données pour optimiser les performances des requêtes et la mise en cache de la sortie des pages pour accélérer le rendu. Le mécanisme de mise en cache améliore efficacement la vitesse de réponse du site Web, améliore l'expérience utilisateur et réduit la charge du serveur.

Explication détaillée des avantages et de l'utilité du serveur Golang Explication détaillée des avantages et de l'utilité du serveur Golang Mar 20, 2024 pm 01:51 PM

Golang est un langage de programmation open source développé par Google. Il est efficace, rapide et puissant et est largement utilisé dans le cloud computing, la programmation réseau, le traitement du Big Data et d'autres domaines. En tant que langage statique fortement typé, Golang présente de nombreux avantages lors de la création d’applications côté serveur. Cet article analysera en détail les avantages et l'utilité du serveur Golang et illustrera sa puissance à travers des exemples de code spécifiques. 1. Le compilateur Golang hautes performances peut compiler le code en code local

See all articles