REDIS与MYSQL实现标签的对比_MySQL
这里来演示下REDIS和MYSQL之间的数据转换问题,REDIS 是典型的KEY -VALUE型NOSQL数据库,并且提供了额外丰富的数据类型。这里简单列举了标签类型的应用问题。
比如在MySQL里面,对内容的标签有以下简单的几张表,我这里只列出来拆分过后的表结构
第一,MySQL部分,内容表: CREATE TABLE `content` ( `id` int(10) unsigned NOT NULL, -- 内容ID,唯一。 `name` varchar(60) DEFAULT NULL, -- 内容的名字 `created_timestamp` timestamp NULL DEFAULT NULL, -- 内容的加入时间 PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 标签表: CREATE TABLE `tag` ( `tag_name` varchar(60) NOT NULL, -- 标签名字,唯一 `visit_count` int(10) unsigned NOT NULL DEFAULT '0', -- 标签的访问次数 PRIMARY KEY (`tag_name`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 内容与标签的关系,多对多。 CREATE TABLE `content_tag_relation` ( `content_id` int(10) unsigned NOT NULL, -- 内容ID `tag_name` varchar(60) NOT NULL -- 标签名字 ) ENGINE=InnoDB DEFAULT CHARSET=latin1
假设我们有以下的需求:
1. 得到标签对应的文章名字,
SELECT a.name FROM content AS a,content_tag_relation AS b WHERE a.id = b.content_id AND b.tag_name = 'mysql'
2. 按照访问量显示前三的标签,
SELECT tag_name FROM tag WHERE 1 ORDER BY visit_count DESC LIMIT 3;
下来我们在REDIS里面存储这部分数据。
第二,redis部分,
1. a,内容,我们用STRING类型来做,值用JSON来存储,
t_girl:6379> set string:content_id:4 '{"name":"test48601","created_timestamp":"2012-01-01 05:41:01"}' OK t_girl:6379> get string:content_id:4 "{\"name\":\"test48601\",\"created_timestamp\":\"2012-01-01 05:41:01\"}"
但是如果想得到内容对应的名字和创建时间,REDIS方面获取困难,就得交给程序来做了。
b,或者也可以用HASH类型来存储,
t_girl:6379> hset 'hset:content_id:4' name 'test48601' (integer) 1 t_girl:6379> hset 'hset:content_id:4' created_timestamp '2012-01-01 05:41:01' (integer) 1
那这时想获取对应的名字以及时间非常容易
t_girl:6379> hget hset:content_id:4 name "test48601" t_girl:6379> hget hset:content_id:4 created_timestamp "2012-01-01 05:41:01" t_girl:6379>
2. 标签,我们用有序集合来做,这么做的好处是可以用REDIS对应的有序来做访问量的排序。
t_girl:6379> zadd zset:tag 680 database 469 db2 (integer) 2
比如我们想要得到访问前三的标签名字?
t_girl:6379> zrevrangebyscore zset:tag +inf 0 limit 0 3 1) "mongodb" 2) "sql" 3) "postgresql"
3. 标签与内容的关系,我们用集合来做,
t_girl:6379> sadd set:content_id:4 role mongodb role database (integer) 3
那么也很容易得到指定内容对应的标签
t_girl:6379> smembers set:content_id:4 1) "database" 2) "role" 3) "mongodb"
4. a, 如果用上面的设计我们实现稍微复杂些的需求:比如得到标签对应的文章名字。这样的需求貌似没有可以直接拿来用的方法,比如下面我写的一段PYTHON代码来获取:
import redis content_id_keys = r.keys('set*') content_id_keys_len = len(content_id_keys) i = 0 j = 0 content_name_list = [] while i < content_id_keys_len: if r.sismember(content_id_keys[i],'mysql') == 1: content_name_list.append(eval(r.get(content_id_keys[i].replace('set','string')))['name']) print('Content name is :' + content_name_list[j]) j += 1 i += 1
b.那其实我们可以在REDIS里面做一份冗余的集合来存储,这样就可以直接把信息拿出来。
t_girl:6379> sadd tag:mysql test123 test133 test144 test155 (integer) 4 t_girl:6379> smembers tag:mysql 1) "test133" 2) "test155" 3) "test123" 4) "test144"

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Dieses Tutorial zeigt Ihnen, wie Sie bestimmte Texte oder Phrasen auf allen geöffneten Tabs in Chrome oder Edge unter Windows finden. Gibt es eine Möglichkeit, eine Textsuche auf allen geöffneten Tabs in Chrome durchzuführen? Ja, Sie können eine kostenlose externe Weberweiterung in Chrome verwenden, um Textsuchen auf allen geöffneten Tabs durchzuführen, ohne die Tabs manuell wechseln zu müssen. Einige Erweiterungen wie TabSearch und Strg-FPlus können Ihnen dabei helfen, dies einfach zu erreichen. Wie durchsucht man Text auf allen Registerkarten in Google Chrome? Strg-FPlus ist eine kostenlose Erweiterung, die es Benutzern erleichtert, auf allen Registerkarten ihres Browserfensters nach einem bestimmten Wort, einer bestimmten Phrase oder einem bestimmten Text zu suchen. Diese Erweiterung

Als beliebte soziale Plattform für Kurzvideos verfügt Douyin über eine riesige Nutzerbasis. Für Douyin-Ersteller ist die Verwendung von Tags zur Gewinnung von Traffic eine wirksame Möglichkeit, die Bekanntheit von Inhalten zu erhöhen und Aufmerksamkeit zu erregen. Wie nutzt Douyin also Tags, um Traffic anzulocken? Dieser Artikel beantwortet diese Frage ausführlich für Sie und stellt verwandte Techniken vor. 1. Wie füge ich Tags auf Douyin hinzu, um Traffic anzulocken? Achten Sie beim Posten eines Videos darauf, Tags auszuwählen, die für den Inhalt relevant sind. Diese Tags sollten das Thema und die Schlüsselwörter Ihres Videos abdecken, damit Benutzer Ihr Video mithilfe von Tags leichter finden können. Die Nutzung beliebter Hashtags ist eine effektive Möglichkeit, die Bekanntheit Ihres Videos zu erhöhen. Recherchieren Sie aktuelle beliebte Tags und Trends und integrieren Sie diese in Ihre Videobeschreibungen und Tags. Diese beliebten Tags sind in der Regel besser sichtbar und können die Aufmerksamkeit von mehr Zuschauern auf sich ziehen. 3. Etikett

Wenn wir Douyin-Werke durchsuchen, sehen wir oft ein Uhrsymbol hinter dem Tag. Was genau ist diese Uhr also? Dieser Artikel konzentriert sich auf die Diskussion „Was ist die Uhr hinter dem Douyin-Label“ und hofft, Ihnen nützliche Hinweise für die Verwendung von Douyin zu geben. 1. Was ist die Uhr hinter dem Douyin-Label? Douyin wird einige heiße Themenherausforderungen starten. Wenn Benutzer teilnehmen, sehen sie nach dem Tag ein Uhrsymbol, was bedeutet, dass die Arbeit an der Themenherausforderung teilnimmt, und zeigt die verbleibende Zeit der Herausforderung an. Bei einigen zeitkritischen Inhalten wie Feiertagen, besonderen Ereignissen usw. fügt Douyin nach dem Etikett ein Uhrensymbol hinzu, um Benutzer an die Gültigkeitsdauer des Inhalts zu erinnern. 3. Beliebte Tags: Wenn ein Tag beliebt wird, fügt Douyin hinter dem Tag ein Uhrsymbol ein, um anzuzeigen, dass der Tag beliebt ist

Wie lösche ich externe Kontakt-Tags in der DingTalk-App? Die meisten Freunde wissen nicht, wie man externe Kontakt-Tags in der DingTalk-App löscht Wie man externe Kontakt-Tags in der Ding-App löscht, können Interessierte vorbeischauen! So löschen Sie externe Kontakt-Tags in der DingTalk-App. 1. Öffnen Sie zuerst die DingTalk-App und klicken Sie auf die Funktion [Verwaltung], wie unten auf der Hauptseite gezeigt. 2. Rufen Sie dann die Unternehmensverwaltungsoberfläche auf und suchen Sie nach [Externe Kontakte]; Wählen Sie auf der Seite mit den externen Kontakteinstellungen den Dienst [Label Management] aus. 4. Wählen Sie dann auf der Hauptseite für Kontaktlabels den Typ der Labelgruppe aus, den Sie löschen möchten. 5. Klicken Sie abschließend auf die rote Labelgruppe

Ausführliche Erklärung des Video-Tags in HTML Der Video-Tag in HTML5 ist ein Tag, der zum Abspielen von Videos auf Webseiten verwendet wird. Es kann Videos in verschiedenen Formaten rendern, z. B. MP4, WebM, Ogg und mehr. In diesem Artikel stellen wir die Verwendung von Video-Tags im Detail vor und stellen spezifische Codebeispiele bereit. Grundstruktur Das Folgende ist die Grundstruktur des Video-Tags:

Unterschiede: 1. Das Head-Tag wird verwendet, um den Kopf des Dokuments zu definieren, der ein Container für alle Head-Elemente ist, und das Header-Tag wird verwendet, um den Header (Einleitungsinformationen) des Dokuments zu definieren. 2. Alle Browser unterstützen das Head-Tag und ältere Versionen von Browsern Keiner der Browser unterstützt das Header-Tag und Browser wie IE9+ und höher müssen das Header-Tag unterstützen.

So implementieren Sie mithilfe von HTML und CSS ein Layout mit einem festen Navigationsmenü. Im modernen Webdesign gehören feste Navigationsmenüs zu den häufigsten Layouts. Dadurch kann das Navigationsmenü immer oben oder am Rand der Seite angezeigt werden, sodass Benutzer bequem durch Webinhalte navigieren können. In diesem Artikel wird erläutert, wie Sie mithilfe von HTML und CSS ein Layout mit einem festen Navigationsmenü implementieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen Sie eine HTML-Struktur erstellen, um den Inhalt der Webseite und das Navigationsmenü darzustellen. Hier ist ein einfaches Beispiel

Mit der Entwicklung von Webanwendungen erfreuen sich beschriftete Eingabefelder immer größerer Beliebtheit. Diese Art von Eingabefeld ermöglicht Benutzern eine bequemere Eingabe von Daten und erleichtert Benutzern außerdem die Verwaltung und Suche der eingegebenen Daten. Vue ist ein sehr leistungsfähiges JavaScript-Framework, das uns dabei helfen kann, beschriftete Eingabefelder schnell zu implementieren. In diesem Artikel wird erläutert, wie Sie mit Vue ein beschriftetes Eingabefeld implementieren. Schritt 1: Erstellen Sie eine Vue-Instanz. Zuerst müssen wir eine Vue-Instanz auf der Seite erstellen. Der Code lautet wie folgt: &l
