1、redis支持5中类型 string hash(map格式) list(linkedlist,可以重复) set(不允许重复) sortedset(有序,不允许重复)
string set age get age del age
hash hset myhash username hh ,hash hset myhash password 123 ; hget myhash username ;
list lpush mylist a, lpush mylist b ,rpush mylist c; lpop mylist ;lrange mylist 0 -1;rpop mylist;
set sadd myset a; sadd myset b c d; smembers myset;srem myset b;
sortedset zadd mysort 60 lisi; zadd mysort 50 zhangsan; zrange mysort 0 -1;zrem mysort lisi;
keys * 可以查看所有key
type username 查看类型
del key 删除指定key
2、redis持久化
RDB 默认方式,一定间隔时间会持久化一次 ;
900秒(15分钟)内至少1个key值改变 则进行数据库保存--持久化
300秒(5分钟)内至少10个key值改变 则进行数据库保存--持久化
60秒(1分钟)内至少10000个key值改变 则进行数据库保存--持久化
AOF 日志记录的方式,可以记录每一条命令的操作,可以每一次命令操作后,持久化数据
appendonly res 开启 aof
always 每一次执行都执行持久化
everysec 每个一秒执行一次持久化
no 由系统操控
3、jedis操作redis
@Testpublic voidtestRedisStr(){
Jedis jedis= new Jedis("139.129.99.12", 6379);
jedis.auth("123456");
jedis.set("username2","张三");
jedis.setex("username3",10,"hh3");
System.out.println(jedis.get("username"));
jedis.close();
}
@Testpublic voidtestRedisHash(){
Jedis jedis= new Jedis("139.129.99.12", 6379);
jedis.auth("123456");
jedis.hset("user","username","hh");
jedis.hset("user","age","20");
System.out.println(jedis.hget("user","username"));
System.out.println(jedis.hgetAll("user"));
jedis.close();
}
@Testpublic voidtestRedisList(){
Jedis jedis= new Jedis("139.129.99.12", 6379);
jedis.auth("123456");
jedis.lpush("list1","la","lb","lc");
jedis.rpush("list1","ra","rb","rc");
System.out.println(jedis.lrange("list1",0,-1));
System.out.println(jedis.lpop("list1"));
jedis.close();
}
@Testpublic voidtestRedisSet(){
Jedis jedis= new Jedis("139.129.99.12", 6379);
jedis.auth("123456");
jedis.sadd("myset02","java","php","c++");
System.out.println(jedis.smembers("myset02"));
jedis.close();
}
@Testpublic voidtestRedisSortedSet(){
Jedis jedis= new Jedis("139.129.99.12", 6379);
jedis.auth("123456");
jedis.zadd("sortset01",50,"hh1");
jedis.zadd("sortset01",80,"hh2");
jedis.zadd("sortset01",70,"hh3");
System.out.println(jedis.zrange("sortset01",0,-1));
jedis.close();
}
redis 集群
spring boot 使用redis
@Testpublic voidtest(){//string 字符串//redisTemplate.opsForValue().set("str", "hh");
redisTemplate.boundValueOps("str").set("hh");
System.out.println("str = " + redisTemplate.opsForValue().get("str"));//hash 散列
redisTemplate.boundHashOps("h_key").put("name", "hh");
redisTemplate.boundHashOps("h_key").put("age", 13);//获取所有域
Set set = redisTemplate.boundHashOps("h_key").keys();
System.out.println(" hash散列的所有域:" +set);//获取所有值
List list = redisTemplate.boundHashOps("h_key").values();
System.out.println(" hash散列的所有域的值:" +list);//list 列表
redisTemplate.boundListOps("l_key").leftPush("c");
redisTemplate.boundListOps("l_key").leftPush("b");
redisTemplate.boundListOps("l_key").leftPush("a");//获取全部元素
list = redisTemplate.boundListOps("l_key").range(0, -1);
System.out.println(" list列表中的所有元素:" +list);//set 集合
redisTemplate.boundSetOps("s_key").add("a", "b", "c");
set= redisTemplate.boundSetOps("s_key").members();
System.out.println(" set集合中的所有元素:" +set);//sorted set 有序集合
redisTemplate.boundZSetOps("z_key").add("a", 30);
redisTemplate.boundZSetOps("z_key").add("b", 20);
redisTemplate.boundZSetOps("z_key").add("c", 10);
set= redisTemplate.boundZSetOps("z_key").range(0, -1);
System.out.println(" zset有序集合中的所有元素:" +set);
}