zoukankan      html  css  js  c++  java
  • redis學習筆記

    1.redis的概念

    关系型数据库:mysql---关系型数据库:mysql oracle sqlServer

    非关系型数据库:NoSQLredis只是一个nosql

    Redis 是一个高性能的开源的C语言写的Nosql(非关系型数据库),数据保存内存中。

    Redis 是以key-value形式存储Nosql,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,非关系型数据库严格上不是一种数据库,应该是一数据结构化存储方法的集合

    2.使用场景

      1.中央缓存

        经常查询数据,不经常变化的数据,放到读速度很快的空间(内存),以便下次访问减少时间。减轻压力(数据库的压力),减少访问时.redis就是存放在内存中的。

      2.计数器、防暴力攻击等等

    3.安装redis

    Redis 的官方下载站是 http://redis.io/download,可以去上面下载最新的安装程序下来==Linux服务器版本的,官方没有windows版本的,github上有提供windows版本的:

    https://github.com/ServiceStack/redis-windows/blob/master/downloads/redis64-2.8.12.zip

    官网:redis.io

    中文网:redis.cn

    4.操作redis

      1.指令操作--百度

      2.java操作

    @Test
    public void test(){
    /*
    通过连接池操作redis可以提高效率
    */

    //先获取连接池配置对象
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    //设置相关参数
    jedisPoolConfig.setMaxTotal(10);//忙时最大访问数量
    jedisPoolConfig.setMaxIdle(5);//闲时最大访问数
    jedisPoolConfig.setMaxWaitMillis(3*1000);//最大等待时间
    jedisPoolConfig.setTestOnBorrow(true);//测试连接是否通畅

    //获取连接池对象
    JedisPool jedisPool = new JedisPool(jedisPoolConfig,"地址",端口号,3*1000,"密码");

    //通过连接池对象获取连接
    Jedis jedis = jedisPool.getResource();
    jedis.set("飞机", "XX");
    jedis.lpush("username","wer");
    jedis.lpush("username","111");
    jedis.rpush("username","222");
    System.out.println(jedis.lpop("username"));
    System.out.println(jedis.lrange("username", 0, -1));
    //操作api
    Set<String> keys = jedis.keys("*");
    System.out.println(keys);
    for (String key : keys) {
    System.out.println(key);
    System.out.println(jedis.get(key));
    }

    //关闭资源
    jedisPool.close();
    jedis.close();
    }

    4.淘汰策略

    淘汰一些数据,达到redis数据都是有效的,确保内容优化。选择合适的淘汰策略进行淘汰

    淘汰一些数据,达到redis数据都是有效的。选择合适的淘汰策略进行淘汰。

    volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰

    volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰

    volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰

    allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

    allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰

    no-enviction(驱逐):禁止驱逐数据

    redis 确定驱逐某个键值对后,会删除这个数据并,并将这个数据变更消息发布到本地(AOF 持久化)和从机(主从连接)。

     

    redis存放的数据到达配置的最大内容后,会按照配置淘汰策略进行淘汰.

    5.持久化配置

     

    Redis 提供了两种不同级别的持久化方式:RDBAOF,可以通过修改redis.conf来进行配置.

    1.1. RDB模式

    RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.

    如何关闭 rdb 模式:

    save ""

    # save 900 1        //至少在900秒的时间段内至少有一次改变存储同步一次

    # save xxx

    # save 60 10000

    1.2. AOF追加模式

    AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。

    如何开启aof模式:

    appendonly yes         //yes 开启,no 关闭

     

  • 相关阅读:
    Exadata存储节点的CPU限制成功了没?
    如何减少Exadata计算节点CPU的Core数量
    如何选择适合你的HTAP数据库?
    小知识:Oracle中的层次查询
    小知识:使用MOS下载Oracle介质快速参考
    小知识:Flex ASM特性对集群资源显示的影响
    javaWeb request请求乱码、response响应中文乱码一站式解决方案
    java 文件File与byte[]数组相互转换的两种方式
    pr 如何调高导出视频的清晰度?
    pr 剪辑视频之剃刀用法
  • 原文地址:https://www.cnblogs.com/wgyi140724-/p/10560801.html
Copyright © 2011-2022 走看看