Heim > Datenbank > Redis > So verwenden Sie opsForValue von RedisTemplate

So verwenden Sie opsForValue von RedisTemplate

WBOY
Freigeben: 2023-06-03 08:55:09
nach vorne
2242 Leute haben es durchsucht

Verwendung der opsForValue()-Methode in Redis

1. set(K key, V value)

Fügen Sie einen Zeichenfolgentypwert hinzu, Schlüssel ist der Schlüsselwert ist der Wert.

redisTemplate.opsForValue().set("stringValue","bbb");
Nach dem Login kopieren

2. get(Object key)

Den Wert abrufen, der dem Schlüsselschlüssel entspricht.

String stringValue = redisTemplate.opsForValue().get("key")
Nach dem Login kopieren

3. append(K key, String value)

Fügen Sie am Ende eine neue Zeichenfolge basierend auf dem ursprünglichen Wert hinzu.

redisTemplate.opsForValue().append("key", "appendValue");
String stringValueAppend = redisTemplate.opsForValue().get("key");
System.out.println("通过append(K key, String value)方法修改后的字符串:"+stringValueAppend);
Nach dem Login kopieren

4. get(K key, long start, long end)

Abfangen der Wertzeichenfolge, die dem Schlüssel entspricht, beginnend von der Startposition bis zur Endposition position (Eine Zeichenfolge, die den Endindex enthält).

String cutString = redisTemplate.opsForValue().get("key", 0, 3);  
System.out.println("通过get(K key, long start, long end)方法获取截取的字符串:"+cutString);
Nach dem Login kopieren

5. getAndSet(K key, V value)

Erhalten Sie den Wert, der dem ursprünglichen Schlüssel entspricht, und weisen Sie einen neuen Wert zu.

String oldAndNewStringValue = redisTemplate.opsForValue().getAndSet("key", "ccc");  
System.out.print("通过getAndSet(K key, V value)方法获取原来的值:" + oldAndNewStringValue );  
String newStringValue = redisTemplate.opsForValue().get("key");  
System.out.println("修改过后的值:"+newStringValue);
Nach dem Login kopieren

6, setBit(K key, long offset, boolean value)

Der dem Schlüssel entsprechende Wert key Der dem Wert entsprechende ASCII-Code an der Offset-Position ( (von links nach rechts) wird zum Wert.

redisTemplate.opsForValue().setBit("key",1,false);  
newStringValue = redisTemplate.opsForValue().get("key")+"";  
System.out.println("通过setBit(K key,long offset,boolean value)方法修改过后的值:"+newStringValue);
Nach dem Login kopieren

7, getBit(K key, long offset)

Bestimmen Sie, ob das Bit des ASCII-Codes an der angegebenen Position 1 ist.

boolean bitBoolean = redisTemplate.opsForValue().getBit("key",1);  
System.out.println("通过getBit(K key,long offset)方法判断指定bit位的值是:" + bitBoolean);
Nach dem Login kopieren

8, size(K-Taste)

Länge der angegebenen Zeichenfolge abrufen

Long stringValueLength = redisTemplate.opsForValue().size("key");  
System.out.println("通过size(K key)方法获取字符串的长度:"+stringValueLength);
Nach dem Login kopieren

9, inkrementieren(K-Taste, doppeltes Delta) # 🎜🎜#

Speichern Sie den Double-Wert inkrementell in einer Variablen.

double stringValueDouble = redisTemplate.opsForValue().increment("doubleKey",5);   
System.out.println("通过increment(K key, double delta)方法以增量方式存储double值:" + stringValueDouble);
Nach dem Login kopieren

10, Inkrement(K-Taste, langes Delta)

Speichern Sie den Long-Wert inkrementell in der Variablen.

double stringValueLong = redisTemplate.opsForValue().increment("longKey",6);   
System.out.println("通过increment(K key, long delta)方法以增量方式存储long值:" + stringValueLong);
Nach dem Login kopieren

11. setIfAbsent(K key, V value)

Wenn der Schlüssel nicht vorhanden ist, wird er hinzugefügt .

boolean absentBoolean = redisTemplate.opsForValue().setIfAbsent("absentKey","fff");  
System.out.println("通过setIfAbsent(K key, V value)方法判断变量值absentValue是否存在:" + absentBoolean);  
if(absentBoolean){  
    String absentValue = redisTemplate.opsForValue().get("absentKey")+"";  
    System.out.print(",不存在,则新增后的值是:"+absentValue);  
    boolean existBoolean = redisTemplate.opsForValue().setIfAbsent("absentKey","eee");  
    System.out.print(",再次调用setIfAbsent(K key, V value)判断absentValue是否存在并重新赋值:" + existBoolean);  
    if(!existBoolean){  
        absentValue = redisTemplate.opsForValue().get("absentKey")+"";  
        System.out.print("如果存在,则重新赋值后的absentValue变量的值是:" + absentValue);
Nach dem Login kopieren

12, set(K-Taste, V-Wert, langes Timeout, TimeUnit-Einheit)

Legen Sie die Ablaufzeit des Variablenwerts fest.

redisTemplate.opsForValue().set("timeOutKey", "timeOut", 5, TimeUnit.SECONDS);  
String timeOutValue = redisTemplate.opsForValue().get("timeOutKey")+"";  
System.out.println("通过set(K key, V value, long timeout, TimeUnit unit)方法设置过期时间,过期之前获取的数据:"+timeOutValue);  
Thread.sleep(5*1000);  
timeOutValue = redisTemplate.opsForValue().get("timeOutKey")+"";  
System.out.print(",等待10s过后,获取的值:"+timeOutValue);
Nach dem Login kopieren

13, set(K-Taste, V-Wert, langer Offset)

Überschreiben Sie den Wert ab der angegebenen Position.

redisTemplate.opsForValue().set("absentKey","dd",1);  
String overrideString = redisTemplate.opsForValue().get("absentKey");  
System.out.println("通过set(K key, V value, long offset)方法覆盖部分的值:"+overrideString);
Nach dem Login kopieren

14, multiSet(Map-Karte)

Setzt den Kartensatz auf Redis.

Map valueMap = new HashMap();  
valueMap.put("valueMap1","map1");  
valueMap.put("valueMap2","map2");  
valueMap.put("valueMap3","map3");  
redisTemplate.opsForValue().multiSet(valueMap);
Nach dem Login kopieren

15, multiGet(Collection Keys)

Erhalten Sie den entsprechenden Wert basierend auf der Sammlung.

//根据List集合取出对应的value值  
List paraList = new ArrayList();  
paraList.add("valueMap1");  
paraList.add("valueMap2");  
paraList.add("valueMap3");  
List<String> valueList = redisTemplate.opsForValue().multiGet(paraList);  
for (String value : valueList){  
    System.out.println("通过multiGet(Collection<K> keys)方法获取map值:" + value);  
}
Nach dem Login kopieren

16, multiSetIfAbsent(Map Karte)

Wenn der entsprechende Kartensammlungsname nicht existiert, fügen Sie ihn hinzu, falls vorhanden. Tun Sie es nicht. Überarbeiten.

Map valueMap = new HashMap();  
valueMap.put("valueMap1","map1");  
valueMap.put("valueMap2","map2");  
valueMap.put("valueMap3","map3");  
redisTemplate.opsForValue().multiSetIfAbsent(valueMap);
Nach dem Login kopieren

RedisTemplate.opsForValueCommon-Methoden

Einführung

Projekte haben im Allgemeinen einen Cache, und Redis wird häufig verwendet, um auf den Cache zuzugreifen (dies ist nicht mehr der Fall). empfohlen) Sitzungsspeicher-Cache), unsere Schlüssel und Werte werden über den von Spring bereitgestellten Serializer in die Datenbank serialisiert.

RedisTemplate verwendet standardmäßig JdkSerializationRedisSerializer und StringRedisTemplate verwendet standardmäßig StringRedisSerializer.

RedisTemplate.opsForValueCommon-Methoden

 //新增一个字符串类型的值,key是键,value是值
set(K key, V value)
redisTemplate.opsForValue().set("stringValue","bbb");
//获取key键对应的值
get(Object key)
redisTemplate.opsForValue().get("stringValue");
//在原有的值基础上新增字符串到末尾
append(K key, String value)
redisTemplate.opsForValue().append("stringValue","aaa");
//截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串
get(K key, long start, long end)
redisTemplate.opsForValue().get("stringValue",0,3);
//获取原来key键对应的值并重新赋新值
getAndSet(K key, V value)
String oldValue = redisTemplate.opsForValue().getAndSet("stringValue","ccc");
//key键对应的值value对应的ascll码,在offset的位置(从左向右数)变为ascll码的value
setBit(K key, long offset, boolean value)
redisTemplate.opsForValue().setBit("stringValue",1,false);
//判断指定的位置ASCII码的bit位是否为1
getBit(K key, long offset)
boolean bitBoolean = redisTemplate.opsForValue().getBit("stringValue",1);
//获取指定字符串的长度
size(K key)
Long stringValueLength = redisTemplate.opsForValue().size("stringValue");
//以增量的方式将long值存储在变量中
increment(K key, long delta)
double stringValueLong = redisTemplate.opsForValue().increment("longValue",6);
//如果键不存在则新增,存在则不改变已经有的值
setIfAbsent(K key, V value)
boolean absentBoolean = redisTemplate.opsForValue().setIfAbsent("absentValue","fff");
//设置变量值的过期时间
set(K key, V value, long timeout, TimeUnit unit)
redisTemplate.opsForValue().set("timeOutValue","timeOut",5,TimeUnit.SECONDS);
//覆盖从指定位置开始的值
set(K key, V value, long offset)
redisTemplate.opsForValue().set("absentValue","dd",1);
//设置map集合到redis
multiSet(Map map)
Map valueMap = new HashMap(){{//匿名内部内
        put("valueMap1","map1");
        put("valueMap2","map2");
        put("valueMap3","map3");
}};
redisTemplate.opsForValue().multiSet(valueMap);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie opsForValue von RedisTemplate. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage