字符串(string)、哈希/散列/字典(hash)、列表(list)、集合(set)、有序集合(sorted set)。
controller:@resource redistemplate<string, string> redistemplate;
总括:
redistemplate.opsforvalue();//操作字符串
redistemplate.opsforhash();//操作hash
redistemplate.opsforlist();//操作list
redistemplate.opsforset();//操作set
redistemplate.opsforzset();//操作有序set
string:
1.redistemplate.opsforvalue().set(key,value));
2.redistemplate.opsforvalue().get(key));
3.redistemplate.opsforvalue().get(key, start, end);
4.redistemplate.opsforvalue().getandset(key, value);
5.redistemplate.opsforvalue().getbit(key, offset);//下方注释
6.redistemplate.opsforvalue().multiget(keys);
7.redistemplate.opsforvalue().setbit(key, offset, value);//下方注释
8.redistemplate.opsforvalue().set(k key, v value, long timeout, timeunit unit);//timeunit是timeout的类型,如毫秒\秒\天等
9.redistemplate.opsforvalue().setifabsent(key, value);
10.redistemplate.opsforvalue().set(k key, v value, long offset);//博主此处未做java验证
11.redistemplate.opsforvalue().size(key));
12.redistemplate.opsforvalue().multiget(collection<k> keys);
13.redistemplate.opsforvalue().multisetifabsent(map<? extends k, ? extends v> m);
14.同8
15\16\17\18\19.redistemplate.opsforvalue().increment(k key, long delta);或.increment(k key, double delta);
20.redistemplate.opsforvalue().append(key, value);//在key键对应值的右面追加值value
可以看到并没有删除等方法,博主研究了一下可以这样:21.del key------21.redistemplate.opsforvalue().getoperations().delete(key);
.setbit(key, offset, value):key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value.(此处感谢@参考文章对我理解的帮助),由于二进制只有0和1,此处value只能取0和1,如图,其他值是超出范围的
.getbit(key, offset):获取键对应值的ascii码的在offset处位值.
@ascii码对照表
hash:
1.redistemplate.opsforhash().delete(h key, object... hashkeys);//...表示可以传入多个map的key,用,隔开。或用数组传值
2.redistemplate.opsforhash().haskey(key, hashkey);
3.redistemplate.opsforhash().get(key, hashkey);
4.redistemplate.opsforhash().entries(key);//返回map集合
5、6.redistemplate.opsforhash().increment(h key, hk hashkey, long delta);//或increment(h key, hk hashkey, double delta);;
7.redistemplate.opsforhash().keys(key);//返回map的key集合set
8.redistemplate.opsforhash().size(key);
9.redistemplate.opsforhash().multiget(h key, collection<hk> hashkeys);
10.redistemplate.opsforhash().putall(h key, map<? extends hk, ? extends hv> m);
11.redistemplate.opsforhash().put(key, hashkey, value);
12.redistemplate.opsforhash().putifabsent(key, hashkey, value);
13.redistemplate.opsforhash().values(key);//返回map中的value集合list;
list:
redistemplate.opsforlist().leftpush(key, value);//从左向右存压栈
redistemplate.opsforlist().leftpop(key);//从左出栈
redistemplate.opsforlist().size(key);//队/栈长
redistemplate.opsforlist().range(key, start, end);//范围检索,返回list
redistemplate.opsforlist().remove(key, i, value);//移除key中值为value的i个,返回删除的个数;如果没有这个元素则返回0
redistemplate.opsforlist().index(key, index);//检索
redistemplate.opsforlist().set(key, index, value);//赋值
redistemplate.opsforlist().trim(key, start, end);//裁剪,void,删除除了[start,end]以外的所有元素
redistemplate.opsforlist().rightpopandleftpush(string sourcekey, string destinationkey);//将源key的队列的右边的一个值删除,然后塞入目标key的队列的左边,返回这个值
注意:要缓存的对象必须实现serializable接口,因为 spring 会将对象先序列化再存入 redis,否则报异常nested exception is java.lang.illegalargumentexception: defaultserializer requires a serializable……//;;/
set:
redistemplate.opsforvalue().getandset(key, value)
相关推荐:redis数据库教程
以上就是redis中的五种类型的用法是什么的详细内容。