zoukankan      html  css  js  c++  java
  • Java操作Redis

    Redis

      Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

      Redis 与其他 key - value 缓存产品有以下三个特点:

      Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

      Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

      Redis支持数据的备份,即master-slave模式的数据备份。

    Redis应用场景

       主要能够体现 解决数据库的访问压力。

       例如:短信验证码时间有效期、session共享解决方案

    Redis优势

      性能极高

        Redis能读的速度是110000次/s,写的速度是81000次/s 。

      丰富的数据类型

        Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

      原子

        Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

      丰富的特性

        Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    Java操作Redis

    Redis Jedis

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId> 
    </dependency>

    目录结构

     主程序

    @SpringBootApplication
    public class StartApplication {
        public static void main(String[] args) {
            SpringApplication.run(StartApplication.class,args);
        }
    }

    Service

    @Service
    public class SpringBootRedis {
        @Resource
        private StringRedisTemplate stringRedisTemplate;
    
        public void set(String key,Object value){
            if(value instanceof String){
                stringRedisTemplate.opsForValue().set(key,(String) value,200L, TimeUnit.SECONDS);
            }else if(value instanceof List){
                List<String> list=(List)value;
                for(String item:list){
                    stringRedisTemplate.opsForList().leftPush(key,item);
                }
            }else if(value instanceof Set){
                String [] objects=(String[])((Set) value).toArray(new String[((Set) value).size()]);
                stringRedisTemplate.opsForSet().add(key,objects);
            }else if(value instanceof Map){
                stringRedisTemplate.opsForHash().putAll(key,(Map<?,?>) value);
            }
        }
    }

    Controller

    @RestController
    public class RedisController {
        @Resource
        private SpringBootRedis springBootRedis;
    
        @RequestMapping("/setString")
        public void setString(){
            System.out.println("梅川酷子");
            springBootRedis.set("key01","v01");
        }
    
        @RequestMapping("/setList")
        public void setList(){
            List<String> list=new ArrayList<>();
            list.add("v1");
            list.add("v2");
            list.add("v3");
            springBootRedis.set("setlist",list);
        }
    
        @RequestMapping("/setSet")
        public void setSet(){
            Set<String> set=new HashSet<>();
            set.add("北京");
            set.add("上海");
            springBootRedis.set("set",set);
        }
    
        @RequestMapping("/setMap")
        public void setMap(){
            Map map=new HashMap();
            map.put("name","北京");
            map.put("age","111");
            springBootRedis.set("setMap",map);
        }
    }

    启动

      

     

     

  • 相关阅读:
    string整理
    1295 N皇后问题
    排序整理
    Debian下Cannot set LC_CTYPE to default locale: No such file or directory解决方法
    9012,9013三极管总结
    android selector设置button点击效果(具体)以及常见问题
    C语言keywordstatic的绝妙用途
    Activity的launchMode和任务栈小结
    基于matlab的音频波形实时採集显示 v0.1
    how tomcat works读书笔记 七 日志记录器
  • 原文地址:https://www.cnblogs.com/whtt/p/12120562.html
Copyright © 2011-2022 走看看