Rumah > pangkalan data > Redis > teks badan

Cara menggunakan opsForValue of RedisTemplate

WBOY
Lepaskan: 2023-06-03 08:55:09
ke hadapan
2215 orang telah melayarinya

Penggunaan kaedah opsForValue() dalam Redis

1 set(kunci K, nilai V)

Tambahkan nilai jenis rentetan, kunci ialah kunci dan nilai ialah nilai.

redisTemplate.opsForValue().set("stringValue","bbb");
Salin selepas log masuk

2. dapatkan(kunci objek)

Dapatkan nilai yang sepadan dengan kunci kekunci.

String stringValue = redisTemplate.opsForValue().get("key")
Salin selepas log masuk

3. tambah(kunci K, nilai Rentetan)

Tambah rentetan pada penghujung berdasarkan nilai asal.

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

4 get(kunci K, mula panjang, tamat panjang)

Pisahkan rentetan nilai yang sepadan dengan kunci kekunci, bermula dari kedudukan subskrip mula hingga kedudukan subskrip akhir (termasuk akhir subskrip ) rentetan.

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

5 getAndSet(kunci K, nilai V)

Dapatkan nilai yang sepadan dengan kunci asal dan tetapkan semula nilai baharu.

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);
Salin selepas log masuk

6. setBit(kunci K, offset panjang, nilai boolean)

Nilai yang sepadan dengan kunci kekunci, kod ascii yang sepadan dengan nilai, pada kedudukan mengimbangi (mengira dari kiri ke kanan) menjadi nilai.

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

7 getBit(kunci K, offset panjang)

Tentukan sama ada bit kod ASCII pada kedudukan yang ditentukan ialah 1.

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

saiz 8(kunci K)

Dapatkan panjang rentetan yang ditentukan

Long stringValueLength = redisTemplate.opsForValue().size("key");  
System.out.println("通过size(K key)方法获取字符串的长度:"+stringValueLength);
Salin selepas log masuk

9 untuk Menyimpan nilai berganda secara berganda dalam pembolehubah.

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

10 kenaikan(kunci K, delta panjang)

Simpan nilai panjang dalam pembolehubah secara berperingkat.

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

11. setIfAbsent(K kunci, nilai V)

Jika kunci itu tidak wujud, ia akan ditambah jika ia wujud, nilai sedia ada tidak akan diubah.

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);
Salin selepas log masuk

12 set(kunci K, nilai V, tamat masa yang lama, unit TimeUnit)

Tetapkan masa tamat nilai pembolehubah.

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);
Salin selepas log masuk

13 set(kunci K, nilai V, offset panjang)

Timpa nilai bermula dari kedudukan yang ditentukan.

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

14. multiSet(Map map)

Tetapkan set peta kepada redis.

Map valueMap = new HashMap();  
valueMap.put("valueMap1","map1");  
valueMap.put("valueMap2","map2");  
valueMap.put("valueMap3","map3");  
redisTemplate.opsForValue().multiSet(valueMap);
Salin selepas log masuk

15. multiGet(Koleksi kunci)

Dapatkan nilai yang sepadan berdasarkan koleksi.

//根据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);  
}
Salin selepas log masuk

16. multiSetIfAbsent(Map map)

Jika nama set peta yang sepadan tidak wujud, tambahkannya jika wujud, jangan ubah suainya .

Map valueMap = new HashMap();  
valueMap.put("valueMap1","map1");  
valueMap.put("valueMap2","map2");  
valueMap.put("valueMap3","map3");  
redisTemplate.opsForValue().multiSetIfAbsent(valueMap);
Salin selepas log masuk

Kaedah biasa RedisTemplate.opsForValue

Pengenalan

Projek biasanya mempunyai cache dan redis sering digunakan untuk mengakses cache (cache storan sesi tidak lagi disyorkan) , kami Kunci dan nilai diserikan ke pangkalan data melalui Serializer yang disediakan oleh Spring.

RedisTemplate menggunakan JdkSerializationRedisSerializer secara lalai dan StringRedisTemplate menggunakan StringRedisSerializer secara lalai.

RedisTemplate.opsForValue kaedah biasa

 //新增一个字符串类型的值,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);
Salin selepas log masuk

Atas ialah kandungan terperinci Cara menggunakan opsForValue of RedisTemplate. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan