Redis常用命令(三,共三篇)

目录

1、redis的配置文件:

1)、redis配置文件中关于网络的配置:

2)、常规配置:

3)、安全配置:

2、redis的持久化:

1、RDB策略:

在指定时间间隔内,redis服务执行指定次数的写操作,会自动触发一次持久化操作。RDB策略是redis默认的持久化策略,redis服务开启时这种持久化策略就已经默认开启了。

2、AOF策略:采用操作日志来记录进行每一次写操作,每次redis服务启动时,都会重新执行一遍操作日志中的指令。效率低下,redis默认不开启AOF功能。

3、Redis的事务:

1)multi:用来标记一个事务的开始。

2)exec:用来执行事务队列中所有的命令。

3)redis的事务只能保证部分原子性:

4)discard:清除所有已经压入队列中的命令,并且结束整个事务。

5)watch:监控某一个键,当事务在执行过程中,此键代码的值发生变化,则本事务放弃执行;否则,正常执行。

6)unwatch:放弃监控所有的键。

4、redis消息的发布与订阅:

    redis客户端订阅频道,消息的发布者往频道上发布消息,所有订阅此频道的客户端都能够接受到消息。

1)subscribe:订阅一个或者多个频道的消息。

2)publish:将消息发布到指定频道

3)psubcribe:订阅一个或者多个频道的消息,频道名支持通配符。

5、redis的主从复制:主少从多、主写从读、读写分离、主写同步复制到从。

搭建一主二从redis集群:

1)、搭建三台redis服务:使用一个redis模拟三台redis服务

2)通过redis客户端分别连接三台redis服务:

3)查看三台redis服务在集群中的主从角色:        info replication    默认情况下,所有的redis服务都是主机,即都能写和读,但是都还没有从机。  

4)先在6379进行写操作:        set k1 v1     三台rdis服务互相独立,互不影响。  

5)设置主从关系:设从不设主

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

7)增量复制:主库写数据会自动同步到从库。

8)主写从读,读写分离:

9)主机宕机、从机原地待命:

10)、主机恢复、一切恢复正常:

11)、从机宕机、主机少一个从机、其它从机不变:

12)、从机恢复、需要重新设置主从关系:

13)、从机上位:

6、redis哨兵模式:主机宕机、从机上位的自动版。

1)搭建一主二从集群架构:(5节前五步)   

2)提供哨兵配置文件:

3)启动哨兵服务:

4)主机宕机:

5)之前主机恢复:自动从属于新的主机。

7、java操作redis数据库:jedis是redis官方提供的操作redis数据的技术。


1、redis的配置文件:

在redis根目录下提供redis.conf配置文件;
可以配置一些redis服务端运行时的一些参数;
如果不使用配置文件,那么redis会按照默认的参数运行;
如果使用配置文件,在启动redis服务时必须指定所使用的配置文件。
   

1)、redis配置文件中关于网络的配置:

port:指定redis服务所使用的端口,默认使用6379。
bind: 配置客户端连接redis服务时,所能使用的ip地址,默认可以使用redis服务所在主机上任何一个ip都可以;一般情况下,都会配置一个ip,而且通常是一个真实。
          
如果配置了port和bind,则客户端连接redis服务时,必须指定端口和ip:
redis-cli -h 192.168.11.128 -p 6380
redis-cli -h 192.168.11.128 -p 6380 shutdown
tcp-keepalive:连接保活策略。
   

2)、常规配置:

loglevel:配置日志级别,开发阶段配置debug,上线阶段配置notice或者warning.
logfile:指定日志文件。redis在运行过程中,会输出一些日志信息;默认情况下,这些日志信息会输出到控制台;我们可以使用logfile配置日志文件,使redis把日志信息输出到指定文件中。
databases:配置redis服务默认创建的数据库实例个数,默认值是16。


3)、安全配置:

requirepass:设置访问redis服务时所使用的密码;默认不使用。
此参数必须在protected-mode=yes时才起作用。
一旦设置了密码验证,客户端连接redis服务时,必须使用密码连接:redis-cli -h ip -p port -a pwd


2、redis的持久化:

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

1、RDB策略:

在指定时间间隔内,redis服务执行指定次数的写操作,会自动触发一次持久化操作。
RDB策略是redis默认的持久化策略,redis服务开启时这种持久化策略就已经默认开启了。

           save <seconds> <changes>:配置持久化策略
           dbfilename:配置redis RDB持久化数据存储的文件
           dir:    配置redis RDB持久化文件所在目录


2、AOF策略:采用操作日志来记录进行每一次写操作,每次redis服务启动时,都会重新执行一遍操作日志中的指令。
效率低下,redis默认不开启AOF功能。

appendonly:配置是否开启AOF策略
appendfilename:配置操作日志文件
小结:根据数据的特点决定开启哪种持久化策略;
          一般情况,开启RDB足够了。


   

3、Redis的事务:

事务:把一组数据库命令放在一起执行,保证操作原子性,要么同时成功,要么同时失败。
Redis的事务:允许把一组redis命令放在一起,把命令进行序列化,然后一起执行,保证部分原子性。
   

1)multi:用来标记一个事务的开始。

      multi
      set k1 v1
      set k2 v2

2)exec:用来执行事务队列中所有的命令。

      exec

   

3)redis的事务只能保证部分原子性:

      a)如果一组命令中,有在压入事务队列过程中发生错误的命令,则本事务中所有的命令都不执行,能够保证事务的原子性。
        multi
    set k3 v3
    seta kk vv
    set k4 v4
    exec
      b)如果一组命令中,在压入队列过程中正常,但是在执行事务队列命令时发生了错误,则只会影响发生错误的命令,不会影响其它命令的执行,不能够保证事务的原子性。
        multi
    set k3 v3
    incr k1
    set k4 v4
    exec

4)discard:清除所有已经压入队列中的命令,并且结束整个事务。

       multi
       set k5 v5
       set k6 v6
       discard
   

5)watch:监控某一个键,当事务在执行过程中,此键代表的值发生变化,则本事务放弃执行;否则,正常执行。

id balance version

update table set balance=balance-dept,version=version+1
where id=xxxx and version=100

      
      set balance 100
      set balance2 1000
      set version 1

      watch version
      multi
      decrby balance 50
      incrby balance2 50
      exec

 

6)unwatch:放弃监控所有的键。

       watch version
       unwach
       multi
       decrby balance 50
       incrby balance2 50
       exec


4、redis消息的发布与订阅:

    redis客户端订阅频道,消息的发布者往频道上发布消息,所有订阅此频道的客户端都能够接受到消息。

1)subscribe:订阅一个或者多个频道的消息。

      subscribe ch1 ch2 ch3
   

2)publish:将消息发布到指定频道

      publish ch1 hello
   

3)psubcribe:订阅一个或者多个频道的消息,频道名支持通配符。

      subscribe news.*

      activeMQ2


5、redis的主从复制:主少从多、主写从读、读写分离、主写同步复制到从。

搭建一主二从redis集群:

1)、搭建三台redis服务:使用一个redis模拟三台redis服务

       提供三分redis配置文件:redis6379.conf、redis6380.conf、redis6381.conf
           修改三份配置文件:以redis6379.conf为例
             bind 127.0.0.1
             port 6379
             pidfile /var/run/redis_6379.pid
         logfile "6379.log"
         dbfilename dump6379.rdb
      分别使用三个redis配置文件,启动三个redis服务:
           redis-server redis6379.conf &
       redis-server redis6380.conf &
       redis-server redis6381.conf &
  

2)通过redis客户端分别连接三台redis服务:

   redis-cli -h 127.0.0.1 -p 6379
    redis-cli -h 127.0.0.1 -p 6380
    redis-cli -h 127.0.0.1 -p 6381
  

3)查看三台redis服务在集群中的主从角色:
        info replication
    默认情况下,所有的redis服务都是主机,即都能写和读,但是都还没有从机。
  

4)先在6379进行写操作:
        set k1 v1
     三台rdis服务互相独立,互不影响。
  

5)设置主从关系:设从不设主

     在6380上执行:slaveof 127.0.0.1 6379
     在6381上执行:slaveof 127.0.0.1 6379
  

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

     在6380和6381上执行:keys *
  

7)增量复制:主库写数据会自动同步到从库。

     在6379上执行:set k2 v2
     在6380和6381上执行:keys *
  

8)主写从读,读写分离:

     在6380和6381上执行:set k3 v3  ===>报错
  

9)主机宕机、从机原地待命:

     关闭6379服务:redis-cli -h 127.0.0.1 -p 6379 shutdown

     查看6380和6381服务的主从角色:info replication
  

10)、主机恢复、一切恢复正常:

     重启6379服务:redis-server redis6379.conf &
     客户端连接6379:redis-cli -h 127.0.0.1 -p 6379
  

11)、从机宕机、主机少一个从机、其它从机不变:

     关闭6380服务: redis-cli -h 127.0.0.1 -p 6380 shutdown

     查看6379服务的主从角色:info replication
     查看6381服务的主从角色:info replication
  

12)、从机恢复、需要重新设置主从关系:

     重启6380服务:redis-server redis6380.conf &
     客户端连接6380:redis-cli -h 127.0.0.1 -p 6380

     在6380上执行: slaveof 127.0.0.1 6379
  

13)、从机上位:

     a)主机宕机、从机原地待命:
       关闭6379服务:redis-cli -h 127.0.0.1 -p 6379 shutdown
       查看6380和6381服务的主从角色:info replication
     b)从机断开原来主从关系:
       在6380上执行:slaveof no one
       查看6380服务的主从角色:info replication
     c)重新设置主从关系:
       在6381上执行:slaveof 127.0.0.1 6380
     d)之前主机恢复、变成孤家寡人:
       重启6379服务:redis-server redis6379.conf &
       客户端连接6379:redis-cli -h 127.0.0.1 -p 6379
     e)天堂变地狱:
       在6379上执行:slaveof 127.0.0.1 6381
       在6381上执行:info replication   既是主机又是从机
 
  小结:一台主机配置多台从机,一台从机又可以配置多台从机,从而形成一个庞大的集群架构。
        减轻一台主机的压力,但是增加了服务间的延迟时间。


6、redis哨兵模式:主机宕机、从机上位的自动版。

   

1)搭建一主二从集群架构:(5节前五步)
   

2)提供哨兵配置文件:

      在redis安装目下创建配置文件:redis_sentinel.conf
      sentinel monitor dc-redis 127.0.0.1 6379 1
   

3)启动哨兵服务:

      redis-sentinel redis_sentinel.conf
   

4)主机宕机:

      关闭6379服务:redis-cli -h 127.0.0.1 -p 6379 shutdown
      哨兵程序自动选择从机上位。
   

5)之前主机恢复:自动从属于新的主机。

      重启6379服务:redis-server redis6379.conf &
      客户端连接6379:redis-cli -h 127.0.0.1 -p 6379


7、java操作redis数据库:jedis是redis官方提供的操作redis数据的技术。

 把所有的redis指令都定义成java工具类的方法,方法名和redis的指令名完全一样;
开发通过程序访问redis,只需要使用工具类及其方法即可。

在java程序中访问redis:

1)创建maven版的java工程

2)添加jedis依赖
          <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.1.0</version>
        </dependency>

3)创建Jedis连接
     *关闭linux的防火墙

    redis-cli -h ip -p port

    keys *


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

91科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值