Inhaltsverzeichnis
回复内容:
Heim Backend-Entwicklung PHP-Tutorial redis如何实现数据翻页随机不重复展示

redis如何实现数据翻页随机不重复展示

Jun 06, 2016 pm 08:24 PM
mysql php redis

需求是这样的
用户每翻一页都可以看到随机且不重复浏览的数据
展示数据百万级,用户数10W左右

我起初是想用redis集合来实现
先用集合记录 全部可以展示数据的id
然后用集合记录 每个用户浏览过的数据id

用户每次翻页 SDIFFSTORE 上面两个集合 取差集得出 该用户没有浏览的数据id
然后SRANDMEMBER 随机出一个页的数据id
用数据id查出详细数据

发现性能不给力给放弃了
SRANDMEMBER 随机集合越大而越慢
SDIFFSTORE 得出差集还需要写入。。。

暂时没有思路了,还得求解大神们~~~
先谢了~~

回复内容:

需求是这样的
用户每翻一页都可以看到随机且不重复浏览的数据
展示数据百万级,用户数10W左右

我起初是想用redis集合来实现
先用集合记录 全部可以展示数据的id
然后用集合记录 每个用户浏览过的数据id

用户每次翻页 SDIFFSTORE 上面两个集合 取差集得出 该用户没有浏览的数据id
然后SRANDMEMBER 随机出一个页的数据id
用数据id查出详细数据

发现性能不给力给放弃了
SRANDMEMBER 随机集合越大而越慢
SDIFFSTORE 得出差集还需要写入。。。

暂时没有思路了,还得求解大神们~~~
先谢了~~

这个最好不要使用redis,你可以从Redis中将所有ID获取到,然后保存到Session中,每次通过集合随机获取并删除一批ID,然后将剩余的ID再保存到Session。没有了就再从Redis获取一次。

php 随机 id,存到session里,和redis没多大关系

其实你这部分id可以被cache在一次session中,真的没必要没一起都计算差值,因为你不但需要计算还需要Redis本身的开销.
在session中,两个array,一个保存全部,一个保存已经用过的,每一次分配的时候,从
array_diff中随机id.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

Die Zukunft von PHP: Anpassungen und Innovationen Die Zukunft von PHP: Anpassungen und Innovationen Apr 11, 2025 am 12:01 AM

Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.

PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

Zusammenfassung der Schwachstellen von Phpmyadmin Zusammenfassung der Schwachstellen von Phpmyadmin Apr 10, 2025 pm 10:24 PM

Der Schlüssel zur Strategie zur Sicherheitsverteidigungsstrategie von PhpMyAdmin ist: 1. Verwenden Sie die neueste Version von PHPMYADMIN und aktualisieren Sie regelmäßig PHP und MySQL. 2. Strikt kontrollieren Sie Zugriffsrechte, verwenden Sie .htaccess oder Web Server Access Control; 3. Aktivieren Sie ein starkes Kennwort und die Zwei-Faktor-Authentifizierung; 4. Sichern Sie die Datenbank regelmäßig; 5. Überprüfen Sie die Konfigurationsdateien sorgfältig, um zu vermeiden, dass sensible Informationen aufgedeckt werden. 6. Verwenden Sie die Firewall (Web Application Firewall); 7. Führen Sie Sicherheitsaudits durch. Diese Maßnahmen können die durch phpmyadmin verursachten Sicherheitsrisiken aufgrund unzulässiger Konfiguration, über alter Version oder Umgebungssicherheitsrisiken effektiv verringern und die Sicherheit der Datenbank sicherstellen.

PHP: Stirbt es oder passt es sich einfach an? PHP: Stirbt es oder passt es sich einfach an? Apr 11, 2025 am 12:13 AM

PHP stirbt nicht, sondern sich ständig anpasst und weiterentwickelt. 1) PHP hat seit 1994 mehreren Versionen für die Version unterzogen, um sich an neue Technologietrends anzupassen. 2) Es wird derzeit in E-Commerce, Content-Management-Systemen und anderen Bereichen häufig verwendet. 3) PHP8 führt den JIT -Compiler und andere Funktionen ein, um die Leistung und Modernisierung zu verbessern. 4) Verwenden Sie Opcache und befolgen Sie die PSR-12-Standards, um die Leistung und die Codequalität zu optimieren.

So implementieren Sie die zugrunde liegenden Redis So implementieren Sie die zugrunde liegenden Redis Apr 10, 2025 pm 07:21 PM

Redis verwendet Hash -Tabellen, um Daten zu speichern und unterstützt Datenstrukturen wie Zeichenfolgen, Listen, Hash -Tabellen, Sammlungen und geordnete Sammlungen. Ernähren sich weiterhin über Daten über Snapshots (RDB) und appendiert Mechanismen nur Schreibmechanismen. Redis verwendet die Master-Slave-Replikation, um die Datenverfügbarkeit zu verbessern. Redis verwendet eine Ereignisschleife mit einer Thread, um Verbindungen und Befehle zu verarbeiten, um die Datenatomizität und Konsistenz zu gewährleisten. Redis legt die Ablaufzeit für den Schlüssel fest und verwendet den faulen Löschmechanismus, um den Ablaufschlüssel zu löschen.

Anleitung zur umfassenden Verwendung von PhpMyAdmin Anleitung zur umfassenden Verwendung von PhpMyAdmin Apr 10, 2025 pm 10:42 PM

PHPMYADMIN ist nicht nur ein Datenbankmanagement -Tool, sondern auch ein tiefes Verständnis für MySQL und die Verbesserung der Programmierfähigkeiten. Zu den Kernfunktionen gehören die Ausführung von CRUD und SQL Query, und es ist wichtig, die Prinzipien von SQL -Aussagen zu verstehen. Zu den erweiterten Tipps gehören das Exportieren/Importieren von Daten und das Erlaubnismanagement, das ein tiefes Sicherheitsverständnis erfordert. Zu den potenziellen Problemen zählen die SQL -Injektion und die Lösung sind parametrisierte Abfragen und Sicherungen. Die Leistungsoptimierung beinhaltet die Optimierung der SQL -Anweisung und die Indexnutzung. Best Practices betonen die Codespezifikationen, Sicherheitspraktiken und regelmäßige Backups.

Wie ist der Schlüssel für die Redis -Abfrage eindeutig Wie ist der Schlüssel für die Redis -Abfrage eindeutig Apr 10, 2025 pm 07:03 PM

Redis verwendet fünf Strategien, um die Einzigartigkeit von Schlüssel zu gewährleisten: 1. Namespace -Trennung; 2. Hash -Datenstruktur; 3.. Datenstruktur festlegen; 4. Sonderzeichen von Stringschlüssel; 5. Lua -Skriptüberprüfung. Die Auswahl spezifischer Strategien hängt von Datenorganisationen, Leistung und Skalierbarkeit ab.

See all articles