redis应用于缓存 -凯发k8国际

`
zw7534313
  • 浏览: 1231611 次
  • 性别:
  • 来自: 北京
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 社区版块
    • ( 0)
    • ( 21)
    • ( 1)
    存档分类
    最新评论

    redis应用于缓存

    import redis.clients.jedis.jedis;
    public class redisjava {
    private static string host = "192.168.1.101";

    public static void main(string[] args) {
    //isserverrunning();

    // set(); //1.保存放键/值对

    // setsiglelist(); //2.保存list

    // getredisserverallkeys(); //3.获取所有的key

    // setsinglemap(); //4.保存map

    //setobject(); //5.保存序列化的对象

    setobjectwithtimeout(); //6.保存序列化的对象并设置超时时间

    //setjson(); //
    }

    private static void isserverrunning(){
      //连接本地的 redis 服务
          jedis jedis = new jedis(host);
          system.out.println("connection to server sucessfully");
          //查看服务是否运行
          system.out.println("server is running: " jedis.ping());
    }

    static void set(){
    //连接本地的 redis 服务
          jedis jedis = new jedis(host);
          system.out.println("connection to server sucessfully");
          //设置 redis 字符串数据
          jedis.set("w3ckey", "redis tutorial");
         // 获取存储的数据并输出
         system.out.println("stored string in redis:: " jedis.get("w3ckey"));
    }

    static void setsiglelist(){
    //连接本地的 redis 服务
          jedis jedis = new jedis(host);
          system.out.println("connection to server sucessfully");
          //存储数据到列表中
          jedis.lpush("tutorial-list", "redis");
          jedis.lpush("tutorial-list", "mongodb");
          jedis.lpush("tutorial-list", "mysql");
         
          jedis.lpush("tutorial-list", "mysql2");
          jedis.lpush("tutorial-list", "mysql3");
          jedis.lpush("tutorial-list", "mysql4");
          jedis.lpush("tutorial-list", "mysql5");
         // 获取存储的数据并输出
         list list = jedis.lrange("tutorial-list", 0 ,2);
         for(int i=0; i        system.out.println("stored string in redis:: " list.get(i));
         }
        
         system.out.println();
         list = jedis.lrange("tutorial-list", 1, 2);
         for(int i=0; i        system.out.println("stored string in redis:: " list.get(i));
         }
        
         string val = jedis.lpop("tutorial-list"); //移除list.get(0)并返回值
         system.out.println("list.get(0): " val);
        
         for(int i=0; i        system.out.println("stored string in redis:: " list.get(i));
    }
    }

    static void getredisserverallkeys(){
    //连接本地的 redis 服务
          jedis jedis = new jedis(host);
          system.out.println("connection to server sucessfully");
         
         // 获取数据并输出
         set list = jedis.keys("*");
         string key = null;
         for(iterator it = list.iterator(); it.hasnext();) {
           key = (string)it.next();
           system.out.println("list of stored keys:: " key);
         }
    }

    static void setsinglemap(){
    jedis jedis = new jedis(host);
    map map = new hashmap();
    map.put("name", "fujianchao");
    map.put("password", "123");
    map.put("age", "12");
    // 存入一个map
    jedis.hmset("user", map);
    // map key的个数
    system.out.println("map的key的个数" jedis.hlen("user"));
    // map key
    system.out.println("map的key" jedis.hkeys("user"));
    // map value
    system.out.println("map的value" jedis.hvals("user"));
    // (string key, string... fields)返回值是一个list
    list list = jedis.hmget("user", "age", "name");
    system.out.println("redis中key的各个 fields值:"
    jedis.hmget("user", "age", "name") list.size());
    // 删除map中的某一个键 的值 password
    // 当然 (key, fields) 也可以是多个fields
    jedis.hdel("user", "age");
    system.out.println("删除后map的key" jedis.hkeys("user"));

    jedis.hset("user", "num", "100");
    system.out.println("新增后map的key" jedis.hkeys("user"));
    }

    static void setobject(){
    jedis jedis = new jedis(host);

    user user = new user();
    user.setname("张三");
    user.setid(1000);

    jedis.set("user1".getbytes(), serializationutil.serialize(user));

    byte[] val = jedis.get("user1".getbytes());
    user u1 = (user)serializationutil.deserialize(val);
    system.out.println(u1.getname());
    }

    //redis缓存
    static void setobjectwithtimeout(){
    jedis jedis = new jedis(host);

    user user = new user();
    user.setname("张三");
    user.setid(1000);

    jedis.set("user1".getbytes(), serializationutil.serialize(user));
    int timeout=2;
    jedis.expire("user1".getbytes(), timeout); //2秒过期

    byte[] val = jedis.get("user1".getbytes());
    user u1 = (user)serializationutil.deserialize(val);
    system.out.println(u1.getname());

    try {
    thread.currentthread().sleep(3000); //阻塞3秒
    } catch (interruptedexception e) {
    e.printstacktrace();
    }
    val = jedis.get("user1".getbytes());
    // u1 = (user)serializationutil.deserialize(val);
    system.out.println(val); //超时值为空
    }

    }

    public class serializationutil {
        /**
         * 序列化
         *
         * @param object
         * @return
         */
        public static byte[] serialize(object object) {
            objectoutputstream oos = null;
            bytearrayoutputstream baos = null;
            try {
                baos = new bytearrayoutputstream();
                oos = new objectoutputstream(baos);
                oos.writeobject(object);
                byte[] bytes = baos.tobytearray();
                return bytes;
            } catch (exception e) {
            }
            return null;
        }

        /**
         * 反序列化
         *
         * @param bytes
         * @return
         */
        public static object deserialize(byte[] bytes) {
            bytearrayinputstream bais = null;
            try {
                bais = new bytearrayinputstream(bytes);
                objectinputstream ois = new objectinputstream(bais);
                return ois.readobject();
            } catch (exception e) {

            }
            return null;
        }

    }
    分享到:
    |
    评论

    相关推荐

      在缓存到远程redis的同时,缓存一份到本地进程ehcache(此处的ehcache不用做集群,避免组播带来的开销),取缓存的时候会先取本地,没有会向redis请求,这样会减少应用服务器<–>缓存服务器redis之间的网络开销。...

      在应用系统当中,需要确保数据访问所具备的时效性, 将关键性的业务数据全都存储在内存当中。不过如果出现业务 范围持续拓展的情况,只是利用一台机器已然无法实现对全部 关键性业务数据的上传,所以,应该针对...

      redis数据库(缓存应用)

      redis缓存应用.mp4

      在一些要求高一致性(任何数据变化都能及时的被查询到)的系统和应用中,就不能再使用ehcache来解决了,这个时候使用集中式缓存是个不错的选择,因此本文将介绍如何在spring boot的缓存支持中使用redis进行数据缓存...

      redis应用案例_缓存歌曲最新评论:java访问多数据源:redis,mysql。

      主要内容  redis 简介  redis 特性  其他缓存对比  redis 集群( 主从复制,sentinel,cluster)  redis 应用场景  redis 常用客户端  redis 功能演示  redis

      springboot集成redis缓存在电信运营系统中的应用研究.docxspringboot集成redis缓存在电信运营系统中的应用研究.docxspringboot集成redis缓存在电信运营系统中的应用研究.docxspringboot集成redis缓存在电信运营系统...

      java 两级缓存框架,可以让应用支持两级缓存框架 ehcache(caffeine) redis 。避免完全使用独立缓存系统所带来的网络io开销问题。j2cache 是 oschina 目前正在使用的两级缓存框架(要求至少 java 8)。第一级缓存...

      此应用为我最近探索的ssm框架整合范例以及redis 整合 ssm的demo, 给大家作为参考。

      reidis介绍、为什么使用内存缓存数据库、redis作为单线程模型为什么效率还这么高、redis服务安装及常用命令解析、数据持久化、持久化化文件是如何恢复的、高可用主从搭建、故障转移哨兵模式、集群

      跨应用访问 通过redis实现单点登录。即保证安全又减少多次输入密码的繁琐。

      本文深入探讨了redis缓存的关键策略与性能优化技巧。首先,解决缓存穿透,强调缓存空对象与布隆过滤器的应用。接着,针对缓存击穿与雪崩问题,提出过期...这些内容对于提升redis应用性能、保障系统稳定性具有重要意义。

      redis基本应用模型框架图、redis缓存层设计图、redis缓存层架构图

      #资源达人分享计划#

      随着互联网的发展,各种...缓存技术就是解决此问题的一种方案,缓存技术以其简单的设计、高效的存储性能得到了越来越广泛的应用,而内存数据库则是一种优秀的缓存凯发k8国际娱乐官网入口的解决方案。主要介绍redis的特性以及在系统中的应用。

      61、秒杀系统高并发之redis环境搭建 62、秒杀系统高并发之redis的java编程...63、秒杀系统高并发之redis缓存服务代码编写1 64、秒杀系统高并发之redis缓存服务代码编写2 65、秒杀系统高并发之redis缓存服务代码编写3

      windows系统下redis缓存服务应用

      springboot集成redis应用配置(附完整配置文件)

      包括以下是常见的一些redis缓存面试题目: 什么是redis?它与数据库有什么不同? redis有哪些数据类型?它们各自的应用场景是什么? 什么是redis的哈希槽?它是如何工作的? redis的持久化是什么?它有哪些方式?...

    global site tag (gtag.js) - google analytics
    网站地图