zoukankan      html  css  js  c++  java
  • redis学习1

    一、redis简介
    1. redis采用的是K-V模型存储数据的。
    2. redis是一个用C语言编写的,基于内存运行并支持持久化的、高性能的NOSQL数据库,也是当前热门的数据库之一。
    3. redis中的数据大部分时间都是存储在内存中的,适合存储频繁访问、数据量比较小的数据。
    4. 占用端口6379
    二、redis的特点
    1. 支持数据持久化,可以将内存中的数据保存到磁盘中
    2. 支持多种数据结构,不仅支持简单的key-value类型数据,同时还提供list、set、zset、hash等数据结构的存储
    3. 支持数据备份,即master-slave模式的数据备份
    三、redis的下载与安装
    1. redis的下载
            2.解压redis压缩包
    tar xf redis-6.0.6.tar.gz
            3.进入到解压目录
    cd  cd /opt/redis-6.0.6/
            4.进行编译安装
    make          ##如果编译未成功则安装对应的依赖包,然后清理上次编译产生的文件,再次编译
    make distclean    ##清理上次编译产生的文件
            5.如果还出现错误则是gcc版本过低,按如下命令更新gcc原因是因为gcc版本过低,yum安装的gcc是4.8.5的。因此需要升级gcc,升级过程如下:
     
    yum -y install centos-release-scl
     
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
     
    scl enable devtoolset-9 bash
     
    echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
     
    gcc -v
                6.成功编译后再执行编译安装
    make install
            6.启动resid
    redis-server ##前台启动
    redis-server &      ## 后台启动
    四、redis的使用
    1、redis的启动
        1)前台启动:在任何目录下执行    redis-server
        2)后台启动:在任何目录下执行    redis-server &
        3)启动redis服务时,指定配置文件:redis-server redis.conf &
    2、关闭redis服务
        1)通过kill命令,先查看PID
    [root@localhost bin]# ps -ef |grep redis
    root      52306  51803  0 03:04 pts/3    00:00:01 redis-server *:6379
    root      52556  51803  0 03:20 pts/3    00:00:00 grep --color=auto redis
    kill -9 53206
        2)通过redis-cli关闭
    redis-cli shutdown
    3、客户端连接服务端
    redis-cli:是resid自带客户端,直接输入命令直接连接
    redis-cli -p m -h n:连接端口号m,IP地址为n的redis服务
    4、redis的基本知识
        1)测试redis服务的性能
    [root@localhost ~]# redis-benchmark
        2)查看redis服务是否正常运行,结果为PONG则为正常
    [root@localhost ~]# redis-cli
    127.0.0.1:6379> ping
    PONG
        3)查看redis服务器的统计信息
    127.0.0.1:6379> INFO     ##查看所有信息
    127.0.0.1:6379> INFO replication     ##查看集群信息,看是主是备,看有几个备库
        4)redis的数据库实例,作用类似于mysql的数据库实例,redis中的数据库实例只能由redis服务来创建和维护,开发人员不能修改和自行创建数据库实例,默认情况下,redis会自动创建16个数据库实例,并且给这些数据库实例进行编号,从0开始一直到15;可以通过配置文件指定redis自动创建的数据库个数。
    • 默认情况下客户端连接的是第0号实例
    • 切换数据库实例从0到1:
    127.0.0.1:6379> SELECT 1
    OK
            5)写入数据命令set
    127.0.0.1:6379> set K1 V1
    OK
            6)查看写入数据 get
    127.0.0.1:6379> get K1
    "V1"
            7)查看当前数据库实例中素有Key的数量:dbsize
    127.0.0.1:6379> dbsize
    (integer) 5
            8)查看当前数据库实例中所有的key:keys
    127.0.0.1:6379> keys *
    1) "K1"
    2) "myhash:{tag}:__rand_int__"
    3) "counter:{tag}:__rand_int__"
    4) "mylist:{tag}"
    5) "key:{tag}:__rand_int__"
            9)清空数据库实例:flushdb
    127.0.0.1:6379> FLUSHDB
    OK
            10)清空所有数据库实例:flushall
    127.0.0.1:6379> FLUSHDB
    OK
            11)查看redis的配置信息:config get *
    五、redis的数据结构
    •     java里的数据类型
        字符串:zhangsan       lisi          20
        list列表:322134234        zs@163.com       213423
        set集合:beijing            shanghai                  conqing
    •     redis里的数据类型
        string 单key:单value的形式:username:zhangsan     age:20
        list     单key:多有序value:lianxidianhua:2142421,1234234,1234234
        set     单key:多无序value:zhixiashi:beijing  shanghai   chongqing
        hash  单key:对象:student:id:1001,name:zhangsan,age:20
       zset      单key:多有序:zhixiash:200 beijing,1500 shanghai,1000 shanghail
    六、redis的配置文件
    1、redis配置文件中关于网路的配置
           1) port:指定redis服务所使用的端口,默认是6379
           2) bind:配置客户端连接redis服务时,所能使用的ip地址,而且通常是一个真是的ip地址
    • 如果以上配置都配置了,则连接时需要指定ip及端口
    • redis-cli     -h 192.168.127.6  -p 6380
    • 如果修改ip及端口配置后,关闭redis服务也需要指定ip及端口
    • redis-cli     -h 192.168.127.6  -p 6380 shutdown
          3)tcp-keepalive:TCP保活策略,单位为秒。假设设置为60则srver会每60秒向客户端发起一次ACK请求,检查客户端是否挂掉,对于无响应的则会将其链接关闭。  
    2、常规配置:
            1)loglevel:配置日志级别,开发阶段配置为debug级别,警告级别为warning
            2)logfile:指定日志文件“sys.log”重启redis会自动在安装目录下创建日志文件
            3)databases:配置redis服务创建数据库实例的个数,默认是16个。
    3、安全配置
            requirepass:配置redis的访问密码,默认不配置密码,即访问不需要密码验证。此配置项需要在protectde-mode=yes时起作用。使用密码登录客户端:redis-cli -h ip -p 6379 - a 123
    七、redis的持久化
    1、RDB策略
            在指定时间间隔内,redis服务执行指定次数的写操作,会自动出发一次持久化操作,以秒为单位。RDB策略是redis默认开启的。默认生成的文件是dump.rdb
    save 900 1           ##900秒改一次触发持久化操作
    save 300 10
    save 60 10000
            dbfilename:redis持久化数据生成的文件名,默认是dump.rdb,也可以自己设置
            dir:redis持久化数据生成文件保存的目录,默认是./即redis时启动目录,也可以自己配置
    2、AOF策略
            采用操作日志来记录进行每一次写操作,每次redis服务启动时,都会重新执行一次操作日志中的指令。
            1)appendonly:配置是否开启AOF,yes是开,no是关。
            2)appendfilename:AOF保存文件名
            3)appendfsync:AOF异步持久化策略
            4)no-appendfsync-on-rewrite:重写时是否可以运用appendsync,默认no,可以保证数据的安全性。
            5)auto-aof-rewrite-precentage:设置重写的基准百分比
            6)auto-aof-rewrite-min-size:设置重写的基准值。
    八、主从关系设置
    1、设从不设主,在从机上执行:slaveof 主ip 主端口      
            例:slaveof 192.168.44.126 6379
    2、主机宕机不影响从机读,从机宕机需要重新设置与主机的关系
    3、当主机无法修复时,找一台从机断开与主机的关系
            执行:slaveof no one
            再修改其他从机的主从关系,将关系关联到新主机上
    九、哨兵模式
    主机宕机从机自动上位
    搭建步骤:1)首先搭建一主多从集群
                    2)提供烧饼配置文件
                        在redis安装目录下创建配置文件(名字随便):redis—shaobing.conf
                        在配置文件里添加:sentinel monitor dc-redis 主redis的地址    端口   1      例子:sentinel monitor dc-redis 127.0.0.1 6379 1
                    3)在哨兵服务器上执行:redis-sentinel  redis—shaobing.conf &
  • 相关阅读:
    【Caffe代码解析】Layer网络层
    Codeforces Round #276 (Div. 2)
    深入一点 让细节帮你和Fragment更熟络
    C-IDE使用指南
    14.11 隔离事务
    【工具类】遍历扫描目录下全部文件并列出
    Cocos2d-x源代码解析(1)——地图模块(1)
    【Android实战】----基于Retrofit实现多图片/文件、图文上传
    RabbitMQ基本使用
    Spring 4 中重定向RedirectAttributes的使用
  • 原文地址:https://www.cnblogs.com/zrxuexi/p/14508675.html
Copyright © 2011-2022 走看看