DECRBY-Schlüsselmenge |
|
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> del hello
(integer) 1
127.0.0.1:6379> get hello
(nil)
127.0.0.1:6379> get counter
"2"
127.0.0.1:6379> incr counter
(integer) 3
127.0.0.1:6379> get counter
"3"
127.0.0.1:6379> incrby counter 100
(integer) 103
127.0.0.1:6379> get counter
"103"
127.0.0.1:6379> decr counter
(integer) 102
127.0.0.1:6379> get counter
"102"
- Praktisches Szenario
-
Cache: Klassisches Nutzungsszenario, legen Sie allgemeine Informationen, Zeichenfolgen, Bilder oder Videos und andere Informationen in Redis ab, Redis dient als Cache-Ebene und MySQL dient als Persistenzschicht: Reduzieren Sie den Lese- und Schreibdruck von MySQL.
-
Counter: Redis ist ein Single-Threaded-Modell, bis der nächste ausgeführt wird. Gleichzeitig können die Daten in einem Schritt auf andere Datenquellen übertragen werden.
-
Sitzung: Eine gängige Lösung ist Spring Session + Redis, um die Sitzungsfreigabe zu realisieren Liste).
Mit der Listenstruktur können wir problemlos die neueste Nachrichtenwarteschlangenfunktion implementieren (z. B. TimeLine von Sina Weibo). Eine weitere Anwendung von List ist die Nachrichtenwarteschlange. Sie können die PUSH-Operation von List verwenden, um Aufgaben in der Liste zu speichern, und dann verwendet der Arbeitsthread die POP-Operation, um die Aufgaben zur Ausführung herauszunehmen.
Befehlsverwendung
Befehl- KurzbeschreibungVerwendung
RPUSH |
Schieben Sie den angegebenen Wert an das rechte Ende der Liste |
RPUSH-Schlüsselwert |
LPUSH Den angegebenen Wert an das linke Ende der Liste verschieben |
LPUSH-Schlüsselwert |
|
RPOP
Einen Wert vom rechten Ende der Liste einfügen und den angezeigten Wert zurückgeben |
RPOP-Schlüssel |
|
LPOP
aus der Liste Einen Wert am linken Ende einfügen und den angezeigten Wert zurückgeben |
LPOP-Taste |
|
LRANGE
Alle Werte der Liste im angegebenen Bereich abrufen |
LRANGE-Taste 0 -1 |
|
LINDEX
Holen Sie sich die Liste nach Indexelementen in . Sie können auch negative Indizes verwenden, wobei -1 das letzte Element der Liste, -2 das vorletzte Element der Liste usw. darstellt. |
LINEX-Schlüsselindex |
|
Tipps zur Verwendung von Listen |
lpush+lpop=Stapel(Stapel) |
lpush+rpop=Warteschlange(Warteschlange) |
lpush+ltrim=Begrenzte Sammlung (begrenzte Sammlung)
lpush +brpop=Nachrichtenwarteschlange (Nachrichtenwarteschlange)
Weibo-Zeitleiste- : Jemand postet ein Weibo, fügt es mit lpush zur Zeitleiste hinzu und zeigt neue Listeninformationen an.
Message Queue
-
Set Collection
-
Redis‘ Set ist eine ungeordnete Sammlung vom Typ String. Satzmitglieder sind eindeutig, was bedeutet, dass im Satz keine doppelten Daten vorkommen können.
Sammlungen in Redis werden über Hash-Tabellen implementiert, sodass die Komplexität des Hinzufügens, Löschens und Suchens O(1) beträgt.
Befehlsverwendung
Befehl - Kurzbeschreibung Verwendung
SADD |
Ein oder mehrere Mitglieder zur Sammlung hinzufügen | SADD-Schlüsselwert |
SCARD
Rufen Sie die Anzahl der Mitglieder des Satzes ab. |
SCARD-Schlüssel. |
|
SMEMBER SISMEMBER-Schlüsselmitglied | |
| Einige andere Mengenoperationen finden Sie hier
https://www.runoob.com/redis/redis-sets.html |
|
Befehlsausführung |
127.0.0.1:6379> sadd myset ycf ycf1 xiao ycf
(integer) 3
127.0.0.1:6379> smember myset
1) "xiao"
2) "ycf1"
3) "ycf"
127.0.0.1:6379> sismember myset ycf
(integer) 1 | Tatsächliches Szenario |
Tags | (Tag), fügen Sie dem Benutzer ein Tag hinzu, oder der Benutzer fügt der Nachricht ein Tag hinzu, damit Personen mit demselben Tag oder ähnlichen Tags Dinge oder Personen empfehlen können, denen sie folgen können.
Likes oder Klicks, Favoriten usw. können in einem Satz platziert werden, um
Hash-Hash Redis-Hash ist eine Zuordnungstabelle für Felder vom Typ Zeichenfolge (Feld) und Wert (Wert). Hashes eignen sich besonders gut zum Speichern von Objekten.
Verwendung
HSET
Schlüssel-Wert-Paar hinzufügen - HSET-Hash-Schlüssel-Unterschlüssel1-Wert1
HGET Erhalten Sie den Wert des angegebenen Hash-Schlüssels Schlüssel im Hash vorhanden ist, dann entfernen Sie diesen Schlüssel | HDEL-Hash-Schlüssel-Unterschlüssel1 |
|
127.0.0.1:6379> hset user name1 ycf
(integer) 1
127.0.0.1:6379> hset user email1 ycf@163.com
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "ycf"
3) "email1"
4) "ycf@163.com"
127.0.0.1:6379> hget user user
(nil)
127.0.0.1:6379> hget user name1
"ycf"
127.0.0.1:6379> hset user name2 xiaoycf
(integer) 1
127.0.0.1:6379> hset user email2 xiaoycf@163.com
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "ycf"
3) "email1"
4) "ycf@163.com"
5) "name2"
6) "xiaoycf"
7) "email2"
8) "xiaoycf@163.com" - 实战场景
-
缓存: 能直观,相比string更节省空间,的维护缓存信息,如用户信息,视频信息等。
Zset有序集合
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
命令 |
简述 |
使用 |
ZADD |
将一个带有给定分值的成员添加到哦有序集合里面 |
ZADD zset-key 178 member1 |
ZRANGE |
根据元素在有序集合中所处的位置,从有序集合中获取多个元素 |
ZRANGE zset-key 0-1 withccores |
ZREM |
如果给定元素成员存在于有序集合中,那么就移除这个元素 |
ZREM zset-key member1 |
更多命令请参考这里
https://www.runoob.com/redis/redis-sorted-sets.html
127.0.0.1:6379> zadd myscoreset 100 ycf 90 xiaoycf
(integer) 2
127.0.0.1:6379> ZRANGE myscoreset 0 -1
1) "xiaoycf"
2) "ycf"
127.0.0.1:6379> ZSCORE myscoreset ycf
"100" - 实战场景
-
排行榜:有序集合经典使用场景。例如小说视频等网站需要对用户上传的小说视频做排行榜,榜单可以按照用户关注数,更新时间,字数等打分,做排行。
更多编程相关知识,请访问:编程视频!!
|