首页 > 数据库 >Redis-2

Redis-2

时间:2022-10-10 21:14:41浏览次数:52  
标签:no Redis 配置 redis 默认 6379

Redis配置文件

  • 在redis根目录提供redis.conf配置文件,如果不使用配置文件,redis会按照默认参数运行

  • 网络配置

    • port:指定redis服务使用的端口,默认使用6379
    • bind:配置客户端连接redis服务时,所能使用的ip地址,默认使用127.0.0.1本机,通常使用真实IP

    redis-cli -h ip地址 -p 端口号

    redis-cli -h ip地址 -p 端口号 shutdown关闭redis服务

    • tcp-keepalive:TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。如果设置为0,则不会进行保活检测。
  • 常规配置

    • logfile:指定日志文件名,如果不指定,Redis只进行标准输出。要保证日志文件所在的目录必须存在,文件可以不存在。还要在redis启动时指定所使用的配置文件,否则配置不起作用。
    • loglevel:日志级别,开发阶段可以设置成debug,生产阶段通常设置为notice或者warning.
    • databases:配置Redis数据库的个数,默认是16个
  • 安全配置

    • requirepass:配置Redis的访问密码。默认不配置密码,即访问不需要密码验证。此配置项需要在protected-mode=yes时起作用。使用密码登录客户端:redis-cli -h ip -p 6379 -a pwd
  • 持久化配置

redis提供持久化策略,在适当的时机采用适当手段把内存中的数据持久化到磁盘中,每次redis服务启动时,都可以把磁盘上的数据再次加载到内存中。

  1. RDB策略:在指定时间间隔内、redis服务执行指定次数的写操作,会自动触发一次持久化操作(默认持久化策略)

1、save :配置复合的快照触发条件,即Redis 在seconds秒内key改变changes次,Redis把快照内的数据保存到磁盘中一次。默认的策略是:

1分钟内改变了1万次

或者5分钟内改变了10次

或者15分钟内改变了1次

如果要禁用Redis的持久化功能,则把所有的save配置都注释掉。

2、stop-writes-on-bgsave-error:当bgsave快照操作出错时停止写数据到磁盘,这样能保证内存数据和磁盘数据的一致性,但如果不在乎这种一致性,要在bgsave快照操作出错时继续写操作,这里需要配置为no。

3、rdbcompression:设置对于存储到磁盘中的快照是否进行压缩,设置为yes时,Redis会采用LZF算法进行压缩;如果不想消耗CPU进行压缩的话,可以设置为no,关闭此功能。

4、rdbchecksum:在存储快照以后,还可以让Redis使用CRC64算法来进行数据校验,但这样会消耗一定的性能,如果系统比较在意性能的提升,可以设置为no,关闭此功能。

5、dbfilename:Redis持久化数据生成的文件名,默认是dump.rdb,也可以自己配置。

6、dir:Redis持久化数据生成文件保存的目录,默认是./即redis的启动目录,也可以自己配置。

  1. AOF策略:采用操作日志来记录在redis服务器上进行的每一次写操作

1、appendonly:配置是否开启AOF,yes表示开启,no表示关闭。默认是no。

2、appendfilename:AOF保存文件名

3、appendfsync:AOF异步持久化策略

always:同步持久化,每次发生数据变化会立刻写入到磁盘中。性能较差但数据完整性比较好(慢,安全)
everysec:出厂默认推荐,每秒异步记录一次(默认值)
no:不即时同步,由操作系统决定何时同步。

4、no-appendfsync-on-rewrite:重写时是否可以运用appendsync,默认no,可以保证数据的安全性。

5、auto-aof-rewrite-percentage:设置重写的基准百分比

6、auto-aof-rewrite-min-size:设置重写的基准值

Redis事务

  • 事务:把一组数据库命令放在一起执行,保证操作原子性,要么同时成功,要么同时失败。

  • Redis事务的常用命令

    1. 语法:multi

    功能:用于标记事务块的开始。Redis会将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列。

    返回值:开启成功返回OK

    语法:exec

    功能:在一个事务中执行所有先前放入队列的命令,然后恢复正常的连接状态。

    如果在把命令压入队列的过程中报错,则整个队列中的命令都不会执行,执行结果报错;

    1. 语法:discard

    功能:清除所有先前在一个事务中放入队列的命令,并且结束事务。

    1. 语法:watch key [key …]

    功能:当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的。如果被监控的key值在本事务外有修改时,则本事务所有指令都不会被执行。Watch命令相当于关系型数据库中的乐观锁。

    返回值:监控成功,返回OK。

    1. 语法:unwatch

    功能:清除所有先前为一个事务监控的键。

    如果在watch命令之后你调用了EXEC或DISCARD命令,那么就不需要手动调用UNWATCH命令。

    返回值:清除成功,返回OK。

redis消息的发布与订阅

  • redis为多个客户端之间通信引入了频道概念。客户端订阅频道,消息的发布者往频道发布消息,所有订阅此频道的客户端都能够接收到消息。

    • subscribe:订阅一个或者多个频道的消息

      subscribe ch1 ch2 ch3
      
    • publish:将消息发布到频道

      publish ch1 hello
      
    • psubscribe:支持通配符订阅一个或者多个频道

redis集群搭建

  1. 主从复制,主负责写从负责读,读写分离,主机数据更新后根据配置和策略,自动同步到从机。

    搭建一主二从redis集群

    1. 搭建三台redis服务:使用一个redis模拟三台redis服务,提供三份redis配置文件,修改三份配置文件的端口号portpidfilelogfiledbfilename来模拟三个不同的redis服务,分别使用三个redis配件文件,启动三个redis服务

    2. 查看三台redis服务在集群中的主从角色,默认情况下所有的redis服务都是主机,都可以写和读,都没有从机。三台redis服务互相独立。

      info replication

      127.0.0.1:6379> info replication
      # Replication
      role:master
      connected_slaves:0
      master_replid:b307056ccf5deb18f185f555f8a5ba815b7c202d
      master_replid2:0000000000000000000000000000000000000000
      master_repl_offset:0
      second_repl_offset:-1
      repl_backlog_active:0
      repl_backlog_size:1048576
      repl_backlog_first_byte_offset:0
      repl_backlog_histlen:0
      
    3. 设置主从关系:设从不设主,主机不用任何变化,6379位主机,6380、6381位从机,在6380上执行slaveof 127.0.0.1 6379 表示从属于本机的6379。在6381上也执行slaveof 127.0.0.1 6379 。现在状态6379位主机,6380、6381位从机。

    4. 全量复制:一旦主从关系确定,会自动把主机上已有数据同步复制到从库。

    5. 增量复制:主机写数据会自动同步到从库。

    6. 在6380和6381上执行写操作无法执行只能读。

    7. 如果主机宕机,从机原地待命(还可以读但是数据不会再更新)。

    8. 主机恢复,一切恢复正常。

标签:no,Redis,配置,redis,默认,6379
From: https://www.cnblogs.com/9men/p/16777353.html

相关文章

  • docker redis 修改密码
    进入redis[root@iZwz98nzsodcbigjqrrmxmZ~]#dockerexec-itredisbash进入bin目录root@1473acb2f8e7:/data#cd/usr/local/bin/运行命令root@1473acb2f8e7:/us......
  • 阿里云服务器上安装Redis
    阿里云服务器上安装Redis"多学习,多思考"目录阿里云服务器上安装Redis"多学习,多思考"1、下载安装1.1、解压缩1.2、安装C依赖1.3、编译2、修改配置文件3、启动Redis服务4、......
  • Redis和Lombok的下载安装
    下载地址:下载界面:下载好之后进行安装安装界面下一步安装路径的改动默认下一步继续下一步安装点击完成这是我们的安装目录最简单的启动方式是直接双......
  • 2022-10-10 (≥▽≤) Redis数据库
    1.RedisNoSQL:NotOnlySQL非关系型数据库NoSQL的四大类:键值(Key-Value)存储数据库,使用到一个哈希表,这个表中有一个指针指向特定的数据:Redis,Memcache。列存储数据库......
  • SpringBoot启动报错:Parameter 0 of method hmset in com.qcby.rbac.util.RedisUtils r
    SpringBoot启动报错,报错信息如下:  报错是由于A类中定义了含参数的构造函数,Spring自动构造和注入时未为该Bean传入参数,引起报错。查了很多资料,最后发现,我是因为注释......
  • redis本地缓存
    我不想带给你负面情绪,但又想让你知道我的不开心。为了系统性能的提升,一般会将部分数据放入缓存中,加快访问速度。而db承担数据罗盘工作。哪些数据适合放在缓存及时性......
  • Redis都有哪些使用场景
    聊聊Redis现状Redis作为一种内存型的非关系型的数据库,不管在互联网大厂,小厂,大项目和小项目中,几乎都会被使用。为什么Redis会受到如此青睐呢?关于这个问题,可能很多的程序员......
  • Redis都有哪些使用场景
    聊聊Redis现状Redis作为一种内存型的非关系型的数据库,不管在互联网大厂,小厂,大项目和小项目中,几乎都会被使用。为什么Redis会受到如此青睐呢?关于这个问题,可能很多的程序员只......
  • 【Redis】常用命令
    查看内存#redis-cli127.0.0.1:6379>auth123456127.0.0.1:6379>infomemory结果#Memoryused_memory:42030440used_memory_human:40.08Mused_memory_rss:463......
  • k8s中部署redis集群(三主三从)
    1环境说明主机名系统版本IP地址cpu/内存/磁盘用途软件版本k8s_nfsCentOS7.5172.16.1.602核/2GB/60GBnfs存储nfs-utils-1.3.0-0.68k8s-master1CentOS7.5172.16.1.812核/2GB/......