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 &
posted @ 2021-03-09 22:43  caibutou  阅读(62)  评论(0编辑  收藏  举报