How to use opsForValue of RedisTemplate
Usage of opsForValue() method in Redis
1. set(K key, V value)
Add a new string type value, key is the key and value is the value.
redisTemplate.opsForValue().set("stringValue","bbb");
2. get(Object key)
Get the value corresponding to the key key.
String stringValue = redisTemplate.opsForValue().get("key")
3. append(K key, String value)
Add a new string to the end based on the original value.
redisTemplate.opsForValue().append("key", "appendValue"); String stringValueAppend = redisTemplate.opsForValue().get("key"); System.out.println("通过append(K key, String value)方法修改后的字符串:"+stringValueAppend);
4. get(K key, long start, long end)
Intercept the value string corresponding to the key key, starting from the start subscript position to the end subscript position (including the end subscript )String.
String cutString = redisTemplate.opsForValue().get("key", 0, 3); System.out.println("通过get(K key, long start, long end)方法获取截取的字符串:"+cutString);
5. getAndSet(K key, V value)
Get the value corresponding to the original key key and reassign the new value.
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);
6. setBit(K key, long offset, boolean value)
The value corresponding to the key key and the ascii code corresponding to the value, at the offset position (counting from left to right) become value.
redisTemplate.opsForValue().setBit("key",1,false); newStringValue = redisTemplate.opsForValue().get("key")+""; System.out.println("通过setBit(K key,long offset,boolean value)方法修改过后的值:"+newStringValue);
7. getBit(K key, long offset)
Determine whether the bit of the ASCII code at the specified position is 1.
boolean bitBoolean = redisTemplate.opsForValue().getBit("key",1); System.out.println("通过getBit(K key,long offset)方法判断指定bit位的值是:" + bitBoolean);
8. size(K key)
Get the length of the specified string
Long stringValueLength = redisTemplate.opsForValue().size("key"); System.out.println("通过size(K key)方法获取字符串的长度:"+stringValueLength);
9. increment(K key, double delta)
to Incrementally store double values in variables.
double stringValueDouble = redisTemplate.opsForValue().increment("doubleKey",5); System.out.println("通过increment(K key, double delta)方法以增量方式存储double值:" + stringValueDouble);
10. increment(K key, long delta)
Store the long value in the variable in an incremental manner.
double stringValueLong = redisTemplate.opsForValue().increment("longKey",6); System.out.println("通过increment(K key, long delta)方法以增量方式存储long值:" + stringValueLong);
11. setIfAbsent(K key, V value)
If the key does not exist, it will be added. If it exists, the existing value will not be changed.
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);
12.set(K key, V value, long timeout, TimeUnit unit)
Set the expiration time of the variable value.
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);
13, set(K key, V value, long offset)
Overwrite the value starting from the specified position.
redisTemplate.opsForValue().set("absentKey","dd",1); String overrideString = redisTemplate.opsForValue().get("absentKey"); System.out.println("通过set(K key, V value, long offset)方法覆盖部分的值:"+overrideString);
14. multiSet(Map extends K,? extends V> map)
Set the map set to redis.
Map valueMap = new HashMap(); valueMap.put("valueMap1","map1"); valueMap.put("valueMap2","map2"); valueMap.put("valueMap3","map3"); redisTemplate.opsForValue().multiSet(valueMap);
15. multiGet(Collection keys)
Get the corresponding value based on the collection.
//根据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); }
16. multiSetIfAbsent(Map extends K,? extends V> map)
If the corresponding map collection name does not exist, add it; if it exists, do not modify it.
Map valueMap = new HashMap(); valueMap.put("valueMap1","map1"); valueMap.put("valueMap2","map2"); valueMap.put("valueMap3","map3"); redisTemplate.opsForValue().multiSetIfAbsent(valueMap);
Common methods of RedisTemplate.opsForValue
Introduction
Projects generally have a cache, and redis is often used to access the cache (session storage cache is no longer recommended), we The keys and values are serialized to the database through the Serializer provided by Spring.
RedisTemplate uses JdkSerializationRedisSerializer by default, and StringRedisTemplate uses StringRedisSerializer by default.
RedisTemplate.opsForValue common methods
//新增一个字符串类型的值,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 extends K,? extends V> map) Map valueMap = new HashMap(){{//匿名内部内 put("valueMap1","map1"); put("valueMap2","map2"); put("valueMap3","map3"); }}; redisTemplate.opsForValue().multiSet(valueMap);
The above is the detailed content of How to use opsForValue of RedisTemplate. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Redis cluster mode deploys Redis instances to multiple servers through sharding, improving scalability and availability. The construction steps are as follows: Create odd Redis instances with different ports; Create 3 sentinel instances, monitor Redis instances and failover; configure sentinel configuration files, add monitoring Redis instance information and failover settings; configure Redis instance configuration files, enable cluster mode and specify the cluster information file path; create nodes.conf file, containing information of each Redis instance; start the cluster, execute the create command to create a cluster and specify the number of replicas; log in to the cluster to execute the CLUSTER INFO command to verify the cluster status; make

How to clear Redis data: Use the FLUSHALL command to clear all key values. Use the FLUSHDB command to clear the key value of the currently selected database. Use SELECT to switch databases, and then use FLUSHDB to clear multiple databases. Use the DEL command to delete a specific key. Use the redis-cli tool to clear the data.

To read a queue from Redis, you need to get the queue name, read the elements using the LPOP command, and process the empty queue. The specific steps are as follows: Get the queue name: name it with the prefix of "queue:" such as "queue:my-queue". Use the LPOP command: Eject the element from the head of the queue and return its value, such as LPOP queue:my-queue. Processing empty queues: If the queue is empty, LPOP returns nil, and you can check whether the queue exists before reading the element.

Using the Redis directive requires the following steps: Open the Redis client. Enter the command (verb key value). Provides the required parameters (varies from instruction to instruction). Press Enter to execute the command. Redis returns a response indicating the result of the operation (usually OK or -ERR).

Using Redis to lock operations requires obtaining the lock through the SETNX command, and then using the EXPIRE command to set the expiration time. The specific steps are: (1) Use the SETNX command to try to set a key-value pair; (2) Use the EXPIRE command to set the expiration time for the lock; (3) Use the DEL command to delete the lock when the lock is no longer needed.

The best way to understand Redis source code is to go step by step: get familiar with the basics of Redis. Select a specific module or function as the starting point. Start with the entry point of the module or function and view the code line by line. View the code through the function call chain. Be familiar with the underlying data structures used by Redis. Identify the algorithm used by Redis.

Redis data loss causes include memory failures, power outages, human errors, and hardware failures. The solutions are: 1. Store data to disk with RDB or AOF persistence; 2. Copy to multiple servers for high availability; 3. HA with Redis Sentinel or Redis Cluster; 4. Create snapshots to back up data; 5. Implement best practices such as persistence, replication, snapshots, monitoring, and security measures.

Use the Redis command line tool (redis-cli) to manage and operate Redis through the following steps: Connect to the server, specify the address and port. Send commands to the server using the command name and parameters. Use the HELP command to view help information for a specific command. Use the QUIT command to exit the command line tool.
