redis回顾
redis类型
命令操作
- 字符类型 string
//存储
set username zhangsan
//获取
get username
//删除
del username
- 哈希类型 hash
//存储
hset myhash username zhangsan
hset myhash password 123
//获取
hget myhash username //获取指定key对应的value
hgetall myhash //获取所有键值
//删除
hdel myhash username
- 列表类型 list (队列,允许重复元素)
//存储
lpush mylist a //左侧放入a
lpush mylist b //左侧放入b
rpush mylist c //右侧放入c
//获取
lrange mylist 0 -1 // 遍历所有元素
//删除
lpop mylist //取出list左侧元素
rpop mylist //取出list右侧元素
- 集合类型 set(不允许重复元素,乱序)
//存储
sadd myset a
sadd myset b
//获取
smembers myset
//删除
srem myset a .//删除a
- 有序集合类型 sortedset (不允许重复)
//存储
zadd mysort 60 zhangsan
zadd mysort 50 lisi
zadd mysort 80 wangwu
//获取
zrange mysort 0 -1
zrange mysort 0 -1 withscores //把分数也拿出来
//删除
zrem mysort lisi
通用命令
keys * //查询所有的键
type username //获取指定的value类型
del username //key value
持久化
持久化机制:
- RDB:默认
在一定间隔中,检测key变化,然后持久化
配置文件:
5秒内至少有10个键改变
save 5 10
redis-sever.exe redis.windows.conf
- AOF:(性能影响较大)
日志记录的方式,记录每一条的命令操作
appendonly no —>appendonly yes(开启aof)
appendsync always //每操作一次
appendsync everysec //每隔一秒
appendsync no //不持久化
Jedis
操作redis数据的工具
stringl类型
Jedis jedis = new Jedis("localhost","6379");//默认
jedis.set("username","zhangsan");//添加
jedis.setex("activecode","20","abc");//指定过期时间
String username = jedis.get(username);//获取
jedis.close();
hash类型
Jedis jedis = new Jedis();
jedis.hset("user","name","lisi");
jedis.hset("user","age","23");
jedis.hset("user","gender","male");
jedis.hget("user","name");
Map<String,String> user = jedis.hgetAll("user");//获取hash中所有map的数据
Set<String> = user.keySet();
for(String key : keySet){
String value = user.get(key);
System.out.println(key + ":" + value);
}
list类型
Jedis jedis = new Jedis();
jedis.lpush("mylist","a","b","c");
jedis.epush("mylist","a","b","c");
List<String> mylist = jedis.lrange("mylist",0,-1);
System.out.println(mylist);// cbaabc
String element1 = jedis.lpop("mylist");
System.out.println(element1);//c
String element2 = jedis.rpop("mylist");
System.out.println(element2);//c
set类型
Jedis jedis = new Jedis();
jedis.sadd("myset","java","java","php","c++");
Set<String> myset =jedis.smembers("myset");
System.out.println(myset);
sortedset类型
Jedis jedis = new Jedis();
jedis.zadd("mysortedset",3,"亚瑟");
jedis.zadd("mysortedset",30,"后裔");
jedis.zadd("mysortedset",35,"孙悟空");
Set<String> mysortedset = jedis.zrange("mysortedset",0,-1);
System.out.println(mysortedset);