Redis 命令啟動、配置密碼
Redis是綠色軟件,所以直接解壓就能使用
配置文件為:redis.windows.conf
啟動redis 服務:
redis-server.exe redis.windows.conf
啟動客戶端:
redis-cli.exe
默認沒有給Redis配置密碼,所以在配置文件中配置密碼
將密碼設置為123456
# requirepass foobared改成
requirepass 123456
重新啟動服務端,登錄客戶端的時候加上 -a 密碼來登錄;項目中就不用密碼了
redis-server.exe redis.windows.conf -h localhost -p 6379 -a 123456
存放數據類型
Redis常用命令
String
SETEX為驗證碼場景
SETNX集群互斥
哈希
列表
集合
有序集合
通用命令
在Spring中使用Redis
導入坐標、配置數據源、配置類
redis實際上是創建了16個數據庫,互相隔離;這里寫索引為0-15
操作String類型數據
使用注入的RedisTemplate
注意代碼中使用的函數不是以之前命令的名稱進行命名的
我們之前使用了String的序列化器,那么在redis的客戶端中,key是沒有亂碼的;但是值有亂碼;
Hash操作
列表(list)類數據:
@Test
public void testList(){//Lpush lrange rpop llenListOperations listOperations = redisTemplate.opsForList();listOperations.leftPushAll("mylist","a","b","c"); //lpush多個valuelistOperations.leftPush("mylist","d"); //lpush單個valueList mylist = listOperations.range("mylist",0,-1); //lrangeSystem.out.println(mylist);listOperations.rightPop("mylist"); //rpopLong size = listOperations.size("mylist"); //llenSystem.out.println(size);
}
集合類數據:
@Test
public void testSet(){//sadd smembers scard sinter sunion sremSetOperations setOperations = redisTemplate.opsForSet();setOperations.add("set1","a","b","c","d"); //saddsetOperations.add("set2","a","b","x","y");Set members = setOperations.members("set1"); //smembersSystem.out.println(members);Long size = setOperations.size("set1"); //scardSystem.out.println(size);Set intersect = setOperations.intersect("set1","set2"); //sinter取交集System.out.println(intersect);Set union = setOperations.union("set1","set2"); //sunion取并集System.out.println(union);setOperations.remove("set1","a","b"); //srem
}
有序集合類數據:
@Test
public void testZset(){//zadd zrange zincrby zremZSetOperations zSetOperations = redisTemplate.opsForZSet();zSetOperations.add("zset1","a",10); //zaddzSetOperations.add("zset2","b",12);zSetOperations.add("zset1","c",9);Set zset1 = zSetOperations.range("zset1",0,-1); //zrangeSystem.out.println(zset1);zSetOperations.incrementScore("zset1","c",10); //zincrbyzSetOperations.remove("zset1","a","b"); //zrem
}
通用命令
@Test
public void testCommon(){//keys exists type delSet keys = redisTemplate.keys("*"); //keysSystem.out.println(keys);Boolean name = redisTemplate.hasKey("name"); //existsBoolean set1 = redisTemplate.hasKey("set1");for(Object key : keys){DataType type = redisTemplate.type(key); //typeSystem.out.println(type.name());}redisTemplate.delete("mylist"); //del
}