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
@Test public void testRedisStr(){ 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(); } @Test public void testRedisHash(){ 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(); } @Test public void testRedisList(){ 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(); } @Test public void testRedisSet(){ 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(); } @Test public void testRedisSortedSet(){ 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
@Test public void test(){ //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); }