好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

RedisTemplate中opsForValue和opsForList方法的使用详解

一、opsForValue用法

key:字符串,value:可以是任意对象Object(例如String、具体对象如自定义类Student等),一个key只能对应一个value。

1)value为String类型示例:

?

1

2

3

4

5

6

7

8

//赋值方法

redisTemplate.opsForValue().set( "username1" , "wangxinli" );

redisTemplate.opsForValue().set( "username2" , "yanxiaotang" );

redisTemplate.opsForValue().set( "username3" , "zhangguoshun" );

//取值,返回是String类型

String str1 = redisTemplate.opsForValue().get( "username1" );

String str2 = redisTemplate.opsForValue().get( "username2" );

String str3 = redisTemplate.opsForValue().get( "username3" );

2)value为其他类对象Object(例如自定义对象)

?

1

2

3

4

5

6

//赋值方法

redisTemplate.opsForValue().set( "stu1" , new Student( 1 , "张三" , 20 , "张无忌" ));

redisTemplate.opsForValue().set( "stu2" , new Student( 2 , "李四" , 20 , "张真人" ));

//取值,返回是Student类型

Student stu1 = redisTemplate.opsForValue().get( "stu1" );

Student stu2 = redisTemplate.opsForValue().get( "stu2" );

总结:set时value传的是什么类型,get后返回的就是什么类型。

二、opsForList用法

key:字符串,value:可以是任意对象Object(例如String、具体对象如自定义类Student等),一个key可以分别先后添加多个value。

1)value为String类型示例:

?

1

2

3

4

5

6

7

redisTemplate.opsForList().rightPush( "user_list" , "wangxinli" );

redisTemplate.opsForList().rightPush( "user_list" , "yanxiaotang" );

//push时value传的是什么类型,range方法后接受的list<>中就传什么类型

List<String> lists = redisTemplate.opsForList().range( "user_list" , 0 ,- 1 );

for (String str:lists){

  System.out.println(str);

}

2)value为其他类对象Object(例如自定义对象)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//赋值方法

redisTemplate.opsForList().leftPush( "stu_list" , new Student( 1 , "张三" , 20 , "张无忌" ));

redisTemplate.opsForList().leftPush( "stu_list" , new Student( 2 , "李四" , 20 , "张真人" ));

/**

leftPushAll方法的value值为数组或list集合,该方法会将value值一次性全部追加存入到该key

值对应的内容中;一般情况下同一个key值对应的追加的数据类型要保持一致,像下面那样先

往stu_list中添加Student对象,再往其中追加list集合或数组,这样的操作不常见,也无必要。

*/

redisTemplate.opsForList().leftPushAll( "stu_list" ,stuArr);

//取值,返回是Student类型

List<Student> lists = redisTemplate.opsForList().range( "stu_list" , 0 ,- 1 );

//遍历

for (Student stu:lists){

  System.out.println(stu);

}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文链接:https://blog.csdn.net/qq_30237715/article/details/106857638

查看更多关于RedisTemplate中opsForValue和opsForList方法的使用详解的详细内容...

  阅读:14次