• redis基本使用


    1.数据库架构演变

     DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。

     在项目实际开发过程,有的直接采用JDBC技术进行数据库持久化操作,有的采用目前很好用的ORM框架来进行数据库持久化操作。 ORM耦合度较高

    mysql  单表可支持500万数据

     

     

    6.今天是什么样子: 淘宝   

    nginx代替appche   高可用  负载均衡  两台nginx   应用服务器tomcat  集群    mysql集群

     

    2.NOSQL

     

     

     能干什么

    redis 一秒可以写8万次  读可以达到11万次

     

     

    1.什么是bson

     高频词汇放到redis里面,会员  redis使用聚合模型来避免聚合查询,现在公司使用分布式部署,分库部署,与下图的分布式事务不是一个概念

     

    redis的聚合模型

     

     

     

    nosql 数据库的四大分类:  后面redis主要是k-v键值的形式

     

    redis  kv键值类

     

    文档数据库: MongoDB

     

     

     nosql是CAP

     CAP只能三选二   不能同时满足三个

    再数据并发比较大时候,牺牲c(变为弱一致性) 达到高可用和分布式容错性的目的

    base :基本可用

     

    3.redis

    1.是什么

    memcache  被redis所取代,因为redis支持更多的数据类型

     

     2.能干什么

     3.下载地址

    http://redis.io/
    http://www.redis.cn/

    4.安装

    tar -zxvf redis-5.0.8.tar.gz
    cd redis-5.0.8
    make distclean # 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
    make
    make install
    可以不 make test

    补充:目录作用   /opt 主机额外安装软件摆放的目录   /etc  系统配置文件   /usr/local 软件的安装目录,包含软件的配置文件,再此启动软件

     5.启动

    mkdir myredis
    cp redis.conf  myredis
    cd myredis
    vim redis.conf

    cd  /usr/local/bin
    redis-server /usr/local/etc/redis-5.0.8/myredis/redis.conf
    pe -ef | grep  redis
    redis-cli -p 6379

    ping  pong  即连接成功

    SHUTDOWN 会杀掉server服务

    ------------恢复内容结束------------

    ------------恢复内容开始------------

    1.数据库架构演变

     DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。

     在项目实际开发过程,有的直接采用JDBC技术进行数据库持久化操作,有的采用目前很好用的ORM框架来进行数据库持久化操作。 ORM耦合度较高

    mysql  单表可支持500万数据

     

     

    6.今天是什么样子: 淘宝   

    nginx代替appche   高可用  负载均衡  两台nginx   应用服务器tomcat  集群    mysql集群

     

    2.NOSQL

     

     

     能干什么

    redis 一秒可以写8万次  读可以达到11万次

     

     

    1.什么是bson

     高频词汇放到redis里面,会员  redis使用聚合模型来避免聚合查询,现在公司使用分布式部署,分库部署,与下图的分布式事务不是一个概念

     

    redis的聚合模型

     

     

     

    nosql 数据库的四大分类:  后面redis主要是k-v键值的形式

     

    redis  kv键值类

     

    文档数据库: MongoDB

     

     

     nosql是CAP

     CAP只能三选二   不能同时满足三个

    再数据并发比较大时候,牺牲c(变为弱一致性) 达到高可用和分布式容错性的目的

    base :基本可用

     

    3.redis

    1.是什么

    memcache  被redis所取代,因为redis支持更多的数据类型

     

     2.能干什么

     3.下载地址

    http://redis.io/
    http://www.redis.cn/

    4.安装

    tar -zxvf redis-5.0.8.tar.gz
    cd redis-5.0.8
    make distclean # 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
    make
    make install
    可以不 make test

    补充:目录作用   /opt 主机额外安装软件摆放的目录   /etc  系统配置文件   /usr/local 软件的安装目录,包含软件的配置文件,再此启动软件

     5.启动

    mkdir myredis
    cp redis.conf  myredis
    cd myredis
    vim redis.conf

    cd  /usr/local/bin
    redis-server /usr/local/etc/redis-5.0.8/myredis/redis.conf   # 使用配置文件启动
    pe -ef | grep  redis
    redis-cli -p 6379

    ping  pong  即连接成功

    SHUTDOWN 会杀掉server服务

    redis的使用

     1. redis的杂项知识

    1.自测本机redis性能

    cd  /usr/local/bin
    redis-benchmark #自测本机性能

    2.redis是个单进程   使用的epoll实现多路IO复用

    3.默认16个库,0-15    
    4. 切换库 select 3
    5. 查看当前库key的数量 Dbsize
    6.redis默认索引从0开始
    7.默认端口6379
    8.统一密码管理: 16个库都是同样的密码

    3.redis的数据类型

    key

    keys * 查看 所有的key
    exists key  的名字,判断key是否存在
    move key db: move k1 2
    expire key 秒钟:为给定的key设置过期时间
    ttl key  查看还有多少秒过期:  time to  alive     过期之后此将被从此库中删除
    set k2 doodo :  已存在则覆盖
    get k2 :   获取value
    append  :  append  k1 12345  ==> get k1   ==> 'ty12345'
    STRLEN k1 :   k1 value字符串长度   ==> 7

    set k2 2 :
    INCR k2 : 每次自增1
    INCRBY k2 3 每次自增3
    get k2: ‘3’为字符串
    DECR k2
    DECRBY k2 2
    
    数据操作:字符串、列表、哈希(字典)、无序集合、有序(排序)集合
        有序集合:游戏排行榜
        
    字符串:
        set key value
        get key
        mset k1 v1 k2 v2 ...  添加多个
        mget k1 k2 ...        查找多个
        setex key exp value   设置过期时间  
        incrby key increment  增加
        
    列表:
        rpush key value1 value2 ...
        lpush key value1 value2 ...
        lrange key bindex eindex
        lindex key index
        lpop key | rpop key
        linsert key before|after old_value new_value
        
    哈希:
        hset key field value
        hget key field
        hmset key field1 value1 field2 value2 ...
        hmget key field1 field2
        hkeys key
        hvals key
        hdel key field
        
    集合:
        sadd key member1 member2 ...
        sdiff key1 key2 ...
        sdiffstore newkey key1 key2 ...
        sinter key1 key2 ...
        sunion key1 key2 ...
        smembers key
        spop key
        
    有序集合:
    zadd key grade1 member1 grade2 member2 ...  # 添加数据  zadd game 10 jeff 20 bob 30 tom
        zincrby key grade member     # 给指定添加   zincrby game 40 jeff
        zrange key start end        # 取后3名 zrange game 0 2
        zrevrange key start end        #取前3名    zrevrange game 0 2

    4.redis的配置

     密码管理

    """
    ***在windows上配置好验证需要前台启动
    1)提倡在配置文件中配置,采用配置文件启动
    requirepass 密码
    
    2)当服务启动后,并且连入数据库(redis数据库不能轻易重启),可以再改当前服务的密码(服务重启,密码重置)
    config set requirepass 新密码
    
    3)已连入数据库,可以查看当前数据库服务密码
    config get requirepass
    
    auth 输入密码
    """

     连接数据库

    1)默认连接:-h默认127.0.0.1,-p默认6379,-n默认0号数据库,-a默认无密码
    >: redis-cli     未改端口,默认6379
    >: redis-cli -p 6380  比如改了端口的情况下
    
    2)完整连接:
    >: redis-cli -h ip地址 -p 端口号 -n 数据库编号 -a 密码
    
    3)先连接,后输入密码
    >: redis-cli -h ip地址 -p 端口号 -n 数据库编号
    >: auth 密码

    数据持久化 *********    RDB && AOF

    RDB

    1)配置文件默认配置
    save 900 1  # 超过900秒有1个键值对操作,会自动调用save完成数据持久化
    save 300 10  # 超过300秒有10个键值对操作,会自动调用save完成数据持久化
    save 60 10000  # 超过60秒有10000个键值对操作,会自动调用save完成数据持久化
    
    2)安全机制
    # 当redis服务不可控宕机,会默认调用一下save完成数据持久化(如果数据量过大,也可能存在部分数据丢失)
    
    3)主动持久化
    >: save  # 连入数据库时,主动调用save完成数据持久化
    
    注:数据持久化默认保存文件 dump.rdb,保存路径默认为启动redis服务的当前路径

     redis的常用配置

    1)绑定的ip地址,多个ip用空格隔开
    bind 127.0.0.1
    
    2)端口,默认6379,一般不做修改
    port 6379
    
    3)是否以守护进程启动,默认为no,一般改为yes代表后台启动(windows系统不支持)
    daemonize no
    
    4)定义日志级别,默认值为notice,有如下4种取值:
        debug(记录大量日志信息,适用于开发、测试阶段)
        verbose(较多日志信息)
        notice(适量日志信息,使用于生产环境)
        warning(仅有部分重要、关键信息才会被记录)
    loglevel notice
    
    5)配置日志文件保持地址,默认打印在命令行终端的窗口上
        如果填写 "./redis.log" 就会在启动redis服务的终端所在目录下,用redis.log记录redis日志
    logfile ""
    
    eg)终端首先切断到log文件夹所在目录(一般就可以采用redis的安装目录,也可以自定义),再启动reids服务
    logfile "./log/redis.log"
    
    6)数据库个数,默认是16个,没特殊情况,不建议修改
    databases 16
    
    7)数据持久化
    save 900 1  # 超过900秒有1个键值对操作,会自动调用save完成数据持久化
    save 300 10  # 超过300秒有10个键值对操作,会自动调用save完成数据持久化
    save 60 10000  # 超过60秒有10000个键值对操作,会自动调用save完成数据持久化
    
    8)数据库持久化到硬盘失败,redis会立即停止接收用户数据,让用户知道redis持久化异常,避免数据灾难发生(重启redis即可),默认为yes,不能做修改
    stop-writes-on-bgsave-error yes
    
    9)消耗cpu来压缩数据进行持久化,数据量小,但会消耗cpu性能,根据实际情况可以做调整
    rdbcompression yes
    
    10)增持cpu 10%性能销毁来完成持久化数据的校验,可以取消掉
    rdbchecksum yes
    
    11)持久化存储的文件名称
    dbfilename dump.rdb
    
    12)持久化存储文件的路径,默认是启动服务的终端所在目录
    dir ./
    
    13)reids数据库密码
    requirepass 密码

    ------------恢复内容结束------------

    ------------恢复内容结束------------

  • 相关阅读:
    Codeforces Round #454 Div. 2 A B C (暂时)
    Codeforces Round #453 Div. 2 A B C D (暂时)
    EOJ Monthly 2017.12 A B C D
    C++调用Matlab引擎 图像读写与处理 (知识+代码篇)
    Codeforces Round #449 Div. 2 A B C (暂时)
    AtCoder Regular Contest 077 E
    hdu 6218 Bridge 线段树 set
    hdu 2243 考研路茫茫——单词情结 AC自动机 矩阵幂次求和
    php配置php-fpm启动参数及配置详解
    PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
  • 原文地址:https://www.cnblogs.com/bigbox/p/12897326.html
Copyright © 2020-2023  润新知