❝Wissenspunkte in diesem Artikel lernen Redis hat fünf Hauptdatentypen: String, Hash, Liste, Set, sortiert_set Die Anwendungsszenarien jedes der fünf Haupttypen
❞
❝Daten hinzufügen/ändern:Kaka hat eine Roadmap zur Erstellung eines Interviewleitfadens zusammengestellt und bereitet sich darauf vor, Artikel gemäß einer solchen Roadmap zu schreiben . Später wird festgestellt, dass nicht hinzugefügte Wissenspunkte hinzugefügt werden. Ich freue mich auch darauf, dass Ihre Partner mithelfen, einige Informationen hinzuzufügen. Wir sehen uns im Kommentarbereich!
❞...
Schlüsselwert festlegen
Mehrere Daten abrufen: mget key key1
追加信息到原始数据后边(不存在时则添加):append key value
append key value
设置数值增加指定范围的值:incr key 默认每次加1 | incrby key value 每次新增value
设置数据减少指定范围:decr key | decrby key value 跟新增是一回事
「应用场景」
控制数据库表主键id,为数据库表提供主键生成策略,保证数据表主键的一致性。
设置过期时间:setex key seconds value
<h2 data-tool="mdnice编辑器" style="margin-top: 30px; Rand unten: 15px; Polsterung: 0px; Farbe: Schwarz; Schriftgröße: 22px; border-bottom: 4px solid rgb(64, 184, 250);">
<span class="prefix" style="display: flex; Breite: 20px; Höhe: 20px; Hintergrundgröße: 20px 20px; Hintergrundbild: URL(https://my-wechat.mdnice.com/fullstack-1.png); margin-bottom: -22px;"></span><span class="content" style="display: flex; Farbe: #40B8FA; Schriftgröße: 20px; margin-left: 25px;">1-3 stringEinzelne Zeichenkette</span><span class="suffix" style="display: flex; Boxgröße: border-box; Breite: 200px; Höhe: 10px; Rand-oben-links-Radius: 20px; Hintergrund: RGBA(64, 184, 250, .5); Farbe: RGB (255, 255, 255); Schriftgröße: 16px; Buchstabenabstand: 0,544 Pixel; rechtfertigen-Inhalt: Flex-Ende; schweben: rechts; Rand oben: -10px; Boxgröße: border-box !important; overflow-wrap: break-word !important;"></span>
</h2>
<strong style="color: rgb(53, 148, 247);">设置过期时间:<code style="overflow-wrap: break-word; Rand: 0px 2px; Schriftfamilie: „Operator Mono“, Consolas, Monaco, Menlo, Monospace; Wortbruch: alles brechen; Farbe: RGB(53, 148, 247); Hintergrund: rgba(59, 170, 250, 0,1); Polsterung: 0px 2px; Randradius: 2px; Höhe: 21px; line-height: 22px;">setex key seconds value
时可以投一次
实现热点信息:例如电商行业热门商品、新闻网站热门新闻Weibo Big V-Homepages werden häufig besucht und die Anzahl der Fans, Follower und Weibo-Zahlen müssen von Zeit zu Zeit aktualisiert werden. Dies sind hochfrequente Informationen, und wir können sie mit dem String-Typ von Redis lösen. Legen Sie Benutzerinformationen für Big V fest, indem Sie den Primärschlüssel und die Attribute des Benutzers als Schlüsselwerte verwenden. Hier müssen wir kurz über die Regeln für die Schlüsselbenennung sprechen: Tabellenname + Primärschlüssel + Primärschlüsselwert + Feld: Feldwert. Die Benennung nach solchen Regeln kann unsere Schlüsselwerte sehr gut verwalten.
Wir können es auch auf andere Weise implementieren, nämlich indem wir dem Schlüssel direkt eine Struktur folgen.Die beiden oben genannten Methoden können implementiert werden, aber die erste kann problemlos jeden Wert verwalten Sie müssen alles einmal ändern, je nach Geschäftsszenario, Sie können es einfach regelmäßig aktualisieren. 2. Hash-Typ
获取数据:hget key field > | <code style="overflow-wrap: break-word; margin: 0px 2px; Font-family: „Operator Mono“, Consolas, Monaco, Menlo, monospace; word-break: break-all; color: rgb(53, 148 , 247); Hintergrund: rgba(59, 170, 250, 0,1); Randradius: 21px; ::<code style=" overflow-wrap: break-word margin: font-family: mono consolas monaco menlo monospace word-break: break-all color: rgb hintergrund: rgba padding: height:>hdel key field1
hget key field
| hgetall key
删除数据:hdel key field field1
添加 / 修改多个数据:hmset key field value field1 value1
获取多个数据:hmget key field field1
获取表中字段数量:hlen key
获取表中是否存在某个字段:hexists key field
获取hash表中所有的字段值:hkeys key
hmset key Feldwert Feld1 Wert1
🎜🎜获取多个数据:hmget key field field1
🎜🎜获取表中字段数量:hlen key
🎜🎜获取表中是否存在某个字段:hexists key field
🎜hkeys key
🎜获取hash表中所有的字段值: hvals-Schlüssel
hvals key
设置指定字段的数值增加指定范围的值:hincrby key field increment
| hincrbyfloat key field increment
此图来源于网络非自制,只是模拟购物车场景在上图中,我们可以看到购物车里的信息,下来咱们使用redis来对这个购物车的实现。
这里实现了一个添加购物车和获取购物车,keys的命名为 表名+主键+主键值在上图中,我们会有一个问题就是商品信息存储会大量重复,所有我们也需要将商品单独给一直hash。如下图,只存储商品id这里提供了俩种设置方式,一种是设置多个字段,一种是直接存储为json。信息不经常变动的话可以使用json给大家在提供一个方法hsetnx key field value
设置指定字段的数值增加指定范围的值:hincrby key field increment
| <span class="prefix" style="display: flex; width: 20px; height: 20px; background-image: url(https://my-wechat.mdnice .com/fullstack-1.png);margin-bottom: -22px;"></span><span class="content" style="display: flex; left: 25px;">2-3 hash之购物车</span><span class="suffix" style="display: flex; width: 200px; border -oben-links-Radius: 20px; Hintergrund: RGBA(64, 184, 250, .5); Farbe: rgb(255, 255, 255); Buchstabenabstand: 0,544 Pixel; rechtfertigen-Inhalt: Flex-Ende; schweben: rechts; Rand oben: -10px; Boxgröße: border-box !important; overflow-wrap: break-word !important; /20200525100522415.png" alt="Ein Artikel zum Verständnis der fünf wichtigsten Datentypen und Anwendungsszenarien von Redis" https:></span>给大家在提供一个方法<code style="overflow-wrap: break-word; Rand: 0px 2px; Schriftfamilie: „Operator Mono“, Consolas, Monaco, Menlo, Monospace; Wortbruch: alles brechen; Farbe: RGB(53, 148, 247); Hintergrund: rgba(59, 170, 250, 0,1); Polsterung: 0px 2px; Randradius: 2px; Höhe: 21px; line-height: 22px;">hsetnx key field value
,的商品时不会执行覆盖和无用操作🎜🎜
Datenspeicheranforderungen: Speichern Sie mehrere Daten und unterscheiden Sie die Reihenfolge des Speicherplatzes der Daten Erforderliche Datenstruktur: Ein Speicherplatz speichert mehrere Daten, und die Eingabereihenfolge kann durch die Daten widergespiegelt werden Listentyp: Speichern Sie mehrere Daten. Die unterste Ebene wird mithilfe einer doppelt verknüpften Listenspeicherstruktur implementiert.
lpush key value1
| rpush key value value1
Daten abrufen: overflow-wrap: break-word; margin: „Operator Mono“, Consolas, monospace; : rgba(59 , 170, 250, 0.1); padding: 0px 2px; height: 21px; line-height: 22px;">lrange key start end
lindex key index
| llen key
Daten löschen: rpop key
| lpop key
Daten innerhalb der angegebenen Zeit abrufen und entfernen: blpop key1 key2 timeout | brpop key1 key2 timeout
Diese Funktion schreibt einfach einen Fall, einfach zu erstellen verstehen
Nachdem der Terminalbefehl auf der linken Seite ausgeführt wurde, wird 30 Sekunden gewartet, um die gelöschten Daten zurückzugeben.
Wenn der Befehl zum Hinzufügen auf der rechten Seite ausgeführt wird, werden auf der linken Seite die gelöschten Daten direkt zurückgegeben
Oben kennen wir die Grundoperationen der Liste, die durch Ausführen der LPOP-Taste oder der RPOP-Taste von rechts oder links gelöscht werden können, aber jetzt gibt es ein Szenario, in dem der Freundeskreis gefällt Geschäft verwendet wird, und dann werden die Daten aus der Mitte gelöscht. Der Fall ist wie unten gezeigt
Wir fügen zuerst ein b c d zu Liste 5 hinzu Dann entfernen Sie c Nach der Prüfung bleibt nur noch ein b d übrig
Neue Speicheranforderungen: Speichern Sie eine große Datenmenge und sorgen Sie für eine höhere Effizienz beim Abfragekomfort Erforderliche Speicherstruktur: Kann große Datenmengen speichern, effizienter interner Speichermechanismus, einfach abzufragen Set-Typ: Es ist genau das Gleiche wie die Hash-Speicherstruktur. Es speichert nur Schlüssel, keine Werte (Null), und Werte dürfen nicht wiederholt werden.
smembers key
Daten löschen: srem key member1
Gesamtmenge der Sammlungsdaten abrufen: scard key
判断集合中是否包含指定数据:sismember Schlüsselmitglied
sismember key member
随机获取集合中指定数量的数据:srandmember key count
随机获取集合中某个数据并将改数据集移除集合:spop key
随机获取集合中指定数量的数据:srandmember key count
Rand: 0px 2px; Schriftfamilie: „Operator Mono“, Consolas, Monaco, Menlo, Monospace; Wortbruch: alles brechen; Farbe: RGB(53, 148, 247); Hintergrund: rgba(59, 170, 250, 0,1); Polsterung: 0px 2px; Randradius: 2px; Höhe: 21px; line-height: 22px;">spop key🎜🎜4-3 set热点新闻、热卖旅游、应用app推荐、关注推荐等🎜🎜由于最近咔咔在写discuz,这个案例就以实现关注推荐。🎜Fall 1: Speichern Sie entsprechende Benutzer gemäß einem bestimmten Empfehlungsmechanismus im Set und erhalten Sie dann jedes Mal zufällig 2 Benutzer, die empfohlen werden müssen
Fall 2: Basierend auf bestimmten Empfehlungen Der Mechanismus speichert die entsprechenden Benutzer im Satz, und dann können die täglich basierend auf dem Datum empfohlenen Benutzer nicht wiederholt werden Beziehungen
<span style="display: block; background: url(https://my-wechat.mdnice.com/point.png); height: 30px; width: 100%; background-size: 40px; background-repeat: no-repeat; background-color: #272822; margin-bottom: -7px; border-radius: 5px; background-position: 10px 10px;"></span><code class="hljs" style="overflow-x: auto; padding: 16px; color: #ddd; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #272822; border-radius: 5px;"><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">sinterstore</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">destination</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">key1</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">key2</span><br/><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">sunionstore</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">destination</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">key1</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">key2</span><br/><span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">sdiffstore</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">destination</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">key1</span> <span class="hljs-selector-tag" style="color: #f92672; font-weight: bold; line-height: 26px;">key2</span><br/></code>
PV kann Inkr-Statistiken vom String-Typ direkt verwenden. UV und IP sind unabhängig und werden nicht wiederholt betreiben.
Wir wissen oben, dass die Menge die Eigenschaft hat, dass sie nicht wiederholt werden kann. Auf dieser Grundlage können wir diese Funktion leicht implementieren. Verwenden Sie dann die Narbentaste, um die Menge zu zählen.
Da es sich bei UV um einen unabhängigen Besucher handelt, können Sie zur Implementierung lokale Cookies verwenden. Übergeben Sie das Cookie zur Aufzeichnung an redis.
Daten abrufen: zrange key start stop
删除数据:zrem key member ><code style="overflow-wrap: break-word; margin: 0px 2px; font-family: " operator mono consolas monaco menlo monospace word-break: break-all color: rgb background: rgba padding: border-radius: height: line-height:>zrem key member
按条件获取数据:zrangebyscore key min max limit | zrevrangescore key max min
条件删除数据:zremrangebyrank key start stop | zremrangebyscore key min max
获取集合数据总量:zcard key | zcount key min max
集合交、并操作:zinterstore destination numkeys key | zunionstore destination numkeys key
(这个指令就不做演示了,可以自己查看文档。跟set有点类似,只不过会把所有交集的和给加起来。然后这里边有个numkeys这个参数是一共几个key进行计算 后边的key就需要几个)
获取数据对应的索引:zrank key member | zrevrank key member
socre值获取与修改:zscore key member | zincrby key increment member
相关推荐:《<a href="https://www.php.cn/redis/" target="_blank">redis教程</a>》
zremrangebyrank key start stop | zremrangebyscore Key Min Max
; Wortumbruch: alle brechen; Hintergrund: rgba(59, 170, 0,1); Randradius: 21px; height: 22px;">zcard key | zcount key min max🎜🎜集合交、并操作:Zinterstore-Ziel-Numkeys-Taste | zunionstore Ziel-Numkeys-Taste
(这个指令就不做演示了,可以自己查看文档。跟set有点类似,只不过会把所有交集的和给加起来.然后这里边有个numkeys这个参数是一共几个key进行计算 后边的key就需要几个)🎜🎜获取数据对应的索引:zrank key member | zrevrank-Schlüsselmitglied
🎜🎜socre值获取与修改:zscore-Schlüsselmitglied | Zincrby-Schlüsselinkrementmitglied
🎜🎜相关推荐:《<a href="https://www.php.cn/redis/" target="_blank">Redis-Update</a>》
🎜Das Obige ist eine kurze Einführung und spezifische Anwendung des Redis-Datentyps. Im folgenden Artikel wird der tatsächliche Kampf basierend auf spezifischen Anforderungen durchgeführt.
❝Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, an denen Kaka seit seiner Karriere festhält. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können Euch in der nächsten Ausgabe.
❞
Das obige ist der detaillierte Inhalt vonEin Artikel zum Verständnis der fünf wichtigsten Datentypen und Anwendungsszenarien von Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!