Inhaltsverzeichnis
Redis
1. Redis-Abhängigkeit hinzufügen
4, RedisTemplate und StringRedisTemplate
RedisTemplate<Object, Object> sieht „leistungsstärker“ aus als StringRedisTemplate, da es nicht erfordert, dass der Typ der Schlüssel und Werte String sein muss.
Heim Datenbank Redis Wie betreibt Java SpringBoot Redis?

Wie betreibt Java SpringBoot Redis?

Jun 03, 2023 pm 06:01 PM
java redis springboot

    Redis

    1. Redis-Abhängigkeit hinzufügen

    Spring Boot bietet ein Komponentenpaket für die Redis-Integration: Spring-Boot-Starter-Data-Redis, das von Spring-Data-Redis und Salat abhängt.

    Darüber hinaus gibt es hier zwei kleine Details:

    • In der Spring Boot 1.x-Ära verwendete die unterste Schicht von Spring-Data-Redis Jedis, in der 2.x-Ära wurde sie durch Lettuce ersetzt. „Lettuce hängt von Commons-Pool2 ab.“

    • Spring Data Redis hat die API neu klassifiziert und gekapselt und die gleiche Art von Operationen in die Schnittstelle „Operation“ gekapselt: „Proprietäre Operation“ „Beschreibung“ „ValueOperations“ Datenoperationen vom Typ „String“.
    • ListOperations Datenoperation vom Listentyp
    <!-- springboot整合redis--> 
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <!-- 使用 lettuce 时要加这个包;使用 jedis 时则不需要。-->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
    </dependency>
    Nach dem Login kopieren

    4, RedisTemplate und StringRedisTemplate

    RedisTemplate sieht „leistungsstärker“ aus als StringRedisTemplate, da es nicht erfordert, dass der Typ der Schlüssel und Werte String sein muss.

    Aber offensichtlich steht dies im Widerspruch zur tatsächlichen Situation von Redis: Auf der Ebene der kleinsten Speichereinheit kann Redis im Wesentlichen nur Zeichenfolgen und keine anderen Typen speichern. Aus dieser Sicht entspricht StringRedisTemplate eher der Speichernatur von Redis. Wie unterstützt RedisTemplate jeden Typ durch Serialisierung von Werten? "Hello Redis"

    Wenn Sie RedisTemplate zum Speichern von Objekten verwenden, wird die Adresse des Objekts für die Deserialisierung gespeichert, wodurch viel Speicherplatz verschwendet wird. Um dieses Problem zu lösen, verwenden Sie StringRedisTemplate und denken Sie, dass Sie manuell serialisieren und deserialisieren möchten

    ## Redis 服务器地址
    spring.redis.host=localhost
    ## Redis 服务器连接端口
    spring.redis.port=6379
    ## Redis 数据库索引(默认为 0)
    spring.redis.database=0
    
    ## 以下非必须,有默认值
    ## Redis 服务器连接密码(默认为空)
    spring.redis.password=
    ## 连接池最大连接数(使用负值表示没有限制)默认 8
    spring.redis.lettuce.pool.max-active=8
    ## 连接池最大阻塞等待时间(使用负值表示没有限制)默认 -1
    spring.redis.lettuce.pool.max-wait=-1
    ## 连接池中的最大空闲连接 默认 8
    spring.redis.lett	uce.pool.max-idle=8
    ## 连接池中的最小空闲连接 默认 0
    spring.redis.lettuce.pool.min-idle=0
    Nach dem Login kopieren
    Wenn Springboot Die Spring-Boot-Starter-Web-Abhängigkeit wird nicht eingeführt, daher müssen Sie die Jackson-Abhängigkeit hinzufügen.
    //解决中文乱码问题
    @Configuration
    public class RedisConfig {
        
        @Bean
        public RedisTemplate redisTemplateInit(RedisConnectionFactory redisConnectionFactory) {
    
            RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
    
            redisTemplate.setConnectionFactory(redisConnectionFactory);
            //设置序列化Key的实例化对象
            redisTemplate.setKeySerializer(new StringRedisSerializer());
            //设置序列化Value的实例化对象
            redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
    
            /**
             *
             * 设置Hash类型存储时,对象序列化报错解决
             */
            redisTemplate.setHashKeySerializer(new StringRedisSerializer());
            redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
            return redisTemplate;
        }
    }
    Nach dem Login kopieren

    5. SpringBoot betreibt String stringa, Schlüsselablaufproblem
     Users users = new Users();
     users.setId(2);
     users.setUsername("李四2");
     redisTemplate.opsForValue().set("user:2", JSON.toJSONString(users)); //存的时候序列化对象
     String u = redisTemplate.opsForValue().get("user:2");  //redis 只能返回字符串
     System.out.println("u="+ JSON.parseObject(u,Users.class));  //使用JSON工具反序化成对象
    Nach dem Login kopieren
    Gemäß dem obigen Testfall müssen beim Hash-Set drei Parameter übergeben werden. Der erste ist der Schlüssel, der zweite das Feld und der dritte der gespeicherte Wert. Im Allgemeinen stellt der Schlüssel einen Datensatz dar, das Feld ist das Attribut, das sich auf den Schlüssel bezieht, und der Wert ist der Wert, der dem Attribut entspricht.
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    Nach dem Login kopieren
    Redis-Liste ist als bidirektionale verknüpfte Liste implementiert, die die umgekehrte Suche und das Durchlaufen unterstützt, was jedoch einen gewissen zusätzlichen Speicheraufwand in Redis mit sich bringt, einschließlich Sendepufferwarteschlangen usw ., auch Verwendung dieser Datenstruktur.
    //给user对象设置10分钟过期时间
    redisTemplate.opsForValue().set("user:1", JSON.toJSONString(users),10,TimeUnit.MINUTES );
    Nach dem Login kopieren
    9. SpringBoot betreibt den ZSet-Sammlungstyp
     //删除键
     redisTemplate.delete(key);
     //判断键是否存在
     boolean exists = redisTemplate.hasKey(key);
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonWie betreibt Java SpringBoot Redis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    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)
    2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Wie man Teamkollegen wiederbelebt
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
    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)

    Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

    In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

    Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

    Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

    Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Oct 11, 2024 pm 06:30 PM

    Java leicht gemacht: Ein Leitfaden für Anfänger zur leistungsstarken Programmierung Java ist eine leistungsstarke Programmiersprache, die in allen Bereichen von mobilen Anwendungen bis hin zu Systemen auf Unternehmensebene verwendet wird. Für Anfänger ist die Syntax von Java einfach und leicht zu verstehen, was es zu einer idealen Wahl zum Erlernen des Programmierens macht. Grundlegende Syntax Java verwendet ein klassenbasiertes objektorientiertes Programmierparadigma. Klassen sind Vorlagen, die zusammengehörige Daten und Verhaltensweisen organisieren. Hier ist ein einfaches Java-Klassenbeispiel: publicclassPerson{privateStringname;privateintage;

    Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

    Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.

    Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

    Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

    Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Feb 07, 2025 pm 12:11 PM

    Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo

    Java -Programm zum Einfügen eines Elements am unteren Rand eines Stapels Java -Programm zum Einfügen eines Elements am unteren Rand eines Stapels Feb 07, 2025 am 11:59 AM

    Ein Stapel ist eine Datenstruktur, die dem LIFO -Prinzip (zuletzt, zuerst heraus) folgt. Mit anderen Worten, das letzte Element, das wir einem Stapel hinzufügen, ist das erste, das entfernt wird. Wenn wir einem Stapel Elemente hinzufügen (oder drücken), werden sie oben platziert. vor allem der

    Aus welchem ​​Land stammt der Nexo -Austausch? Aus welchem ​​Land stammt der Nexo -Austausch? Mar 05, 2025 pm 05:09 PM

    Nexo Exchange: Swiss Cryptocurrency Lending Platform Eingehende Analyse NEXO ist eine Plattform, die Kryptowährungskreditdienste anbietet, die die Hypothek und die Kreditvergabe von mehr als 40 Krypto-Vermögenswerten, Fiat-Währungen und Stablecoins unterstützt. Es dominiert die europäischen und amerikanischen Märkte und verpflichtet sich, die Effizienz, Sicherheit und Einhaltung der Plattform zu verbessern. Viele Investoren möchten wissen, wo die Nexo -Börse registriert ist, und die Antwort lautet: Schweiz. Nexo wurde 2018 von Credissimo der Swiss Fintech Company gegründet. NEXO Exchange Geografische Lage und Regulierung: Nexo hat seinen Hauptsitz in Zug der Schweiz, einer bekannten kryptowährungsfreundlichen Region. Die Plattform kooperiert aktiv mit der Aufsicht verschiedener Regierungen und ist im US -amerikanischen Finanzkriminalitätsnetzwerk (Fincen) und im kanadischen Finanzministerium teilgenommen

    See all articles
    Schlüssel mit automatischem Ablauf. Redis kann beim Speichern aller Daten eine Zeitüberschreitung festlegen, und die Daten werden nach dieser Zeit automatisch gelöscht. Häufig verwendete Redis-Zeiteinheiten Normales Wann Wenn wir einen Schlüssel speichern, ist es natürlich, get/set zum Speichern zu verwenden. Tatsächlich ist dies keine gute Vorgehensweise. Redis verfügt über einen Mindestspeicher zum Speichern eines Schlüssels, er wird nicht kleiner sein als dieser Speicher. Daher kann uns eine vernünftige Verwendung von Hash dabei helfen, viel Speicher zu sparen.
    7. SpringBoot betreibt den ListensammlungstypRedis List hat viele Anwendungsszenarien und ist auch eine der wichtigsten Datenstrukturen von Redis. Sie können eine Warteschlange einfach mit List implementieren. Ein typisches Anwendungsszenario von List ist die Push-Operation von List, um Aufgaben in List zu speichern, und dann verwendet der Worker-Thread die POP-Operation, um die Aufgabe zur Ausführung herauszunehmen.
    8. SpringBoot betreibt den Set-SammlungstypDie von Redis Set bereitgestellten externen Funktionen sind eine Listenfunktion, die jedoch automatisch dedupliziert werden kann not want to Set ist eine gute Wahl, wenn doppelte Daten auftreten, und Set bietet eine wichtige Schnittstelle zum Bestimmen, ob sich ein Mitglied in einer Set-Sammlung befindet, die List nicht bereitstellen kann.
    Redis. Das Verwendungsszenario von ZSet ähnelt dem von Set. Der Unterschied besteht darin, dass Set nicht automatisch sortiert wird, während ZSet Mitglieder durch Bereitstellung eines zusätzlichen Prioritätsparameters (Score) sortieren kann . Und es ist Einfügereihenfolge, also automatische Sortierung.