zoukankan      html  css  js  c++  java
  • Redis总结

    一.Redis 简介

    1.Redis解释:Redis 是一个基于key-value形式进行存储的内存型数据库.

      1.1 数据存储方式为key-value

      1.2 数据存储在内存中.

        1.2.1 优点:效率高.理论值:每秒10K数据读取.

      1.3 定位:数据库软件.

        1.3.1 作用:存储数据.

    2.Reids 是一个NoSql 数据库.

      2.1 字面理解: 不使用SQL命令操作数据库软件.

      2.2 NoSQL : 英文全称 Not Only SQL ,表示在应用程序开发时,不是必须使用关系型数据库,可以使用NoSQl替代关系型数据库的部分功能.

      2.3 目前NoSQL不能完全替代关系型数据库.使用关系型数据库结合NoSQl数据库进行完成项目

        2.3.1 当数据比较复杂时不适用于NoSQL数据库

        2.3.2 关系型数据库依然做为数据存储的主要软件.

        2.3.3 NoSQL数据库当作缓存工具来使用.

          2.3.3.1 把某些使用频率较高的内容不仅仅存储到关系型数据库中还存储到NoSQL数据中

          2.3.3.2 考虑到: NoSQL和关系型数据库数据同步的问题.

          

    3.Redis 持久化策略

      3.1 rdb

        3.1.1 默认的持久化策略.

        3.1.2 每隔一定时间后把内存中数据持久化到dump.rdb文件中.

        3.1.3 缺点:

          3.1.3.1 数据过于集中.

          3.1.3.2 可能导致最后的数据没有持久化到dump.rdb

            3.1.3.2.1 解决办法:使用命令:SAVE BGSAVE手动持久化.

      3.2 aof

        3.2.1 监听Redis的日志文件,监听如果发现执行了修改,删除,新增命令.立即根据这条命令把数据持久化.

        3.2.2 缺点:

          3.2.2.1 效率降低.

    二. Redis 常用命令

    1.命令手册网址

    http://doc.redisfans.com/

    2.Redis数据类型

      2.1 String

       2.2 Hash

       2.3 List

       2.4 Set

       2.5 SortedSet 有序集合 

    三. Redis 几个常用概念

    1.Redis 默认有16384 solts(),每个槽可以存储多个hash.

    2.Redis 默认不需要密码: 

      2.1 注释去掉,设置自己的密码 

      

    3.设置密码后需要通过

      3.1 -h 主机ip

      3.2 -p 端口

      3.3 -a 密码 

    ./redis-cli -h 192.168.139.132 -p 6379 -a smallming

    . Jedis

    1.Jedis Redis 客户端工具jar

    2.使用非集群版示例代码

    Jedis jedis = new Jedis("192.168.139.132", 6379);
    // 新增或修改
    // String result = jedis.set("address", "海淀");
    // 查询
    // String result1 = jedis.get("address");
    // 删除
    // Long index = jedis.del("address");

    五. Jedis 集群

    1.集群的概念:

      1.1 多个业务单元协同工作组成的整体称为集群.

        1.1.1 每个业务单元都是相同的.

    2.当集群中业务单元中超过或等于1/2down掉时整个集群不可用.

      2.1 建议使用奇数个,整体down机率小

    3.一主一备模式

      3.1 给每个业务单元创建一个备份业务单元. 原来的业务单元(master)后产生的叫做(slave)

    4.集群和伪集群

      4.1 集群: 每个业务单元都安装到单独的服务器上

      4.2 伪集群: 所有业务单元都安装到同一个服务器上,通过端口区分不同的业务单元.

    5. 使用Jedis访问Reids集群

    Set<HostAndPort> set = new HashSet<>();
            set.add(new HostAndPort("192.168.139.132", 7001));
            set.add(new HostAndPort("192.168.139.132", 7002));
            set.add(new HostAndPort("192.168.139.132", 7003));
            set.add(new HostAndPort("192.168.139.132", 7004));
            set.add(new HostAndPort("192.168.139.132", 7005));
            set.add(new HostAndPort("192.168.139.132", 7006));
            JedisCluster cluster = new JedisCluster(set);
            
            String result = cluster.get("a");
            System.out.println(result);

    六. 流程

    1.查询

      如果redis中存在,从redis中取出,如果redis中不存在,从mysql取出,缓存到redis中

    2.增删改

      2.1操作mysql数据库

      2.2判断redis中是否有缓存数据

      2.3如果有则修改缓存数据

  • 相关阅读:
    2020软件工程第三次作业
    2020软件工程第二次作业
    2020软件工程第一次作业
    线性回归算法
    K均值算法--应用
    K均值算法
    机器学习相关数学基础
    机器学习概述
    语法制导的语义翻译
    作业十四----算符优先分析
  • 原文地址:https://www.cnblogs.com/erbing/p/9799311.html
Copyright © 2011-2022 走看看