1、字符串操作命令
public void testString() {
//set get setnx setex
redisTemplate.opsForValue().set("city", "北京");
String city = (String) redisTemplate.opsForValue().get("city");
System.out.println(city);
redisTemplate.opsForValue().set("code", "1234", 3, TimeUnit.MINUTES);
redisTemplate.opsForValue().setIfAbsent("lock", 1);
redisTemplate.opsForValue().setIfAbsent("lock", 2);
}
其中SETEX key seconds value用于设置短信验证码;
SETNX key value通常用于分布式锁;
2、哈希结构中常见的命令
public void testHash() {
//hset hget hkeys hdel hvals
HashOperations hashOperations = redisTemplate.opsForHash();
hashOperations.put("101", "name", "tom");
hashOperations.put("101", "age", "20");
String name = (String) hashOperations.get("101", "name");
System.out.println(name);
Set keys = hashOperations.keys("101");
System.out.println(keys);
List values = hashOperations.values("101");
System.out.println(values);
hashOperations.delete("101", "age");
}
其中语句中的key、field、value和哈希表结构中的key、field、value相对应。
3、列表操作命令
public void testList() {
//lpush lrange rpop llen
ListOperations listOperations = redisTemplate.opsForList();
listOperations.leftPushAll("mylist","a", "b", "c");
listOperations.leftPush("mylist", "d");
List mylist = listOperations.range("mylist", 0, -1);
System.out.println(mylist);
//从右侧移除一个元素
listOperations.rightPop("mylist");
Long size = listOperations.size("mylist");
System.out.println(size);
}
4、集合操作命令
public void testSet() {
//sadd smembers scard sinter sunion srem
SetOperations setOperations =redisTemplate.opsForSet();
setOperations.add("set1", "a", "b", "c", "d");
setOperations.add("set2", "a", "b", "x", "y");
Set members = setOperations.members("set1");
System.out.println(members);
Long size = setOperations.size("set1");
System.out.println(size);
Set intersect = setOperations.intersect("set1", "set2");
System.out.println(intersect);
Set union = setOperations.union("set1", "set2");
System.out.println(union);
setOperations.remove("set1","a", "b");
}
因为集合是无序的,查询顺序和插入顺序无关;
set集合里面不允许重复元素,重复插入无效;
5、有序集合常用命令
public void testZset(){
//zadd zrange zincrby zrem
ZSetOperations zSetOperations = redisTemplate.opsForZSet();
zSetOperations.add("zset1","a",10);
zSetOperations.add("zset1","b",12);
zSetOperations.add("zset1","c",9);
Set zset1 = zSetOperations.range("zset1",0,-1);
System.out.println(zset1);
zSetOperations.incrementScore("zset1","c",10);
zSetOperations.remove("zset1","a","b");
}
6、Redis通用命令
public void testCommon(){
//keys exists type del
Set keys = redisTemplate.keys("*");
System.out.println(keys);
Boolean name = redisTemplate.hasKey("name");
Boolean set1 = redisTemplate.hasKey("set1");
//把每一个key对于的value输出
for(Object key:keys){
DataType type = redisTemplate.type(key);
System.out.println(type.name());
}
redisTemplate.delete("mylist");
}
keys *:返回所有的key;
keys set*:返回以set开头的key