zoukankan      html  css  js  c++  java
  • java-redis 分布式事务 分布式锁

    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);
        }
  • 相关阅读:
    python定时任务:apscheduler的使用(还有一个celery~)
    Python定时任务-schedule vs. Celery vs. APScheduler
    结合Django+celery二次开发定时周期任务
    The Django Book 2.0--中文版
    第十二章: 部署Django
    Django扩展自定义manage命令
    使用django-extension扩展django的manage――runscript命令
    Django | 执行项目下指定的脚本
    C语言宏定义技巧——多次包括头文件内容不同
    《Java并发编程实战》第十章 避免活跃性危急 读书笔记
  • 原文地址:https://www.cnblogs.com/honghong75042/p/13381599.html
Copyright © 2011-2022 走看看