• Redis其他知识


    Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息

    Redis客户端可以订阅任意数量的频道

    发布订阅(PUB/SUB)命令

    PSUBSCRIBE  pattern

    订阅一个或多个符合给定模式的频道

    PUBSUB  subcommand

    查看订阅与发布系统状态

    PUBLISH  channel  message

    将消息发送到指定的频道

    PUNSUBSCRIBE  pattern

    退订所有给定模式的频道

    SUBSCRIBE  channel

    订阅给定的一个或多个频道的信息

    UNSUBSCRIBE  channel

    指退订给定的频道

    Redis事务

    Redis事务一次可以执行多个命令,并且带有以下三个保证:

               1、批量操作在发送EXEC命令前被放入队列缓存

                2、收到EXEC命令后进入事务执行,事务中任意命令执行失败,其余的命令依赖被执行

                3、在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中

    一个事务从开始到执行会经历:1、开始事务,2、命令入队,3、执行事务。

    Redis事务的执行并不是原子性的。

    事务可理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

    Redis事务

    DISCARD

    取消事务,放弃执行事务块内的所有命令

    EXEC

    执行所有事务块内的命令

    MULTI

    标记一个事务块的开始

    UNWATCH

    取消watch命令对所有可以的监视

    WATCH key

    监视一个或多个key

    Redis脚本

    Redis脚本使用Lua解释器来执行脚本。执行脚本的常用命令为EVAL

    Redis脚本

    EVAL  script  numkeys key

    执行Lua脚本

    EVALSHA  sha1 numkeys key

    执行Lua脚本

    SCRIPT  EXISTS script

    查看指定的脚本是否已经被保存在缓存当中

    SCRIPT  FLUSH

    从脚本缓存中移除所有脚本

    SCRIPT  KILL

    杀死当前正在运行的Lua脚本

    SCRIPT  LOAD script

    将脚本script添加到脚本缓存中,但并不立即执行这个脚本

    Redis连接命令主要用于连接redis服务

    Redis连接命令

    AUTH password

    验证密码是否正确

    ECHO message

    打印字符串

    PING

    查看服务是否运行

    QUIT

    关闭当前连接

    SELECT index

    切换到指定的数据库

    Redis服务器

    Redis服务器主要用于管理redis服务

    Redis服务器命令

    BGREWIRTEAOF

    异步执行一个AOF文件重写操作

    BGSAVE

    在后台异步保存当前数据库的数据到磁盘

    CLIENT KILL

    关闭客户端连接

    CLIENT LIST

    获取连接到服务器的客户端连接列表

    CLIENT GETNAME

    获取连接的名称

    CLIENT PAUSE  timeout

    在指定时间内终止运行来自客户端的命令

    CLIENT SETNAME connection-name

    设置当前连接的名称

    CLUSTER SLOTS

    获取集群节点的映射数据

    COMMAND

    获取redis命令详情数组

    COMMAND COUNT

    获取redis命令总数

    COMMAND GETKEYS

    获取给定命令的所有键

    TIME

    返回当前服务器的时间

    CONFIG GET parameter

    获取指定配置参数的值

    CONFIG REWRITE

    对启动Redis服务器时所指定的redis.conf配置文件进行改写

    CONFIG SET parameter value

    修改redis配置参数,无需重启

    CONFIG  RESETSTAT

    重置INFO命令中的某些统计数据

    DBSIZE

    返回当前数据库的key的数量

    DEBUG  OBJECT KEY

    获取key的调试信息

    DEBUG  SEGFAULT

    让Redis服务崩溃

    FLUSHALL

    删除所有数据库的所有key

    FLUSHDB

    删除当前数据库的所有key

    INFO

    获取redis服务器的各种信息和统计数量

    LASTSAVE

    返回最近一次redis成功将数据保存到磁盘上的时间

    MONITOR

    实时打印出Redis服务器接收到的命令,调试用

    ROLE

    返回主从实例所属的角色

    SAVE

    同步保存数据到硬盘

    SHUTDOWN  [NOSAVE][SAVE]

    异步保存数据到硬盘,并关闭服务器

    SLAVEOF host port

    将当前服务器变为指定服务器的从属服务器(slave server)

    SLOWLO subcommand

    管理redis的慢日志

    Redis数据备份与恢复

    Redis SAVE 命令用于创建当前数据库的备份:该命令将在redis安装目录中创建dump.rdb文件

    恢复数据:只需将备份文件(dump.rdb)移动到redis安装目录并启动服务即可    ,获取redis目录可以使用CONFIG  GET 

    创建redis备份文件也可以使用命令BGSAVE,在后台运行

    Redis安全

    redis的配置文件设置密码参数,客户端连接到redis服务就需要验证,让redis服务更安全

    查看是否设置了密码验证:CONFIG  GET  requirepass(默认情况requirepass参数是空的,可以无需通过密码验证就可以连接到redis服务)

    设置密码 :    CONFIG  SET  requirepass   "redis"

    获取密码:CONFIG  GET  requirepass

    设置密码后,客户端连接redis服务器就需要密码验证,否则无法执行命令。

    Redis性能测试

    redis性能测试是通过同时执行多个命令实现的。

    redis性能测试基本命令:redis-benchmark   [option]   [option  value]        (该命令是在redis目录下执行,而不是redis客户端的内部命令)

    同时执行10000个请求来检测性能:redis-benchmark   -n  -10000   -q

    redis性能测试工具

    -h

    指定服务器主机名

    127.0.0.1

    -p

    指定服务器端口

    6379

    -s

    指定服务器socket

     

    -c

    指定并发连接数

    50

    -n

    指定请求数

    10000

    -d

    以字节的形式指定set/get值的数据大小

    2

    -k

    1=keep  alive   0=reconnect

    1

    -r

    Set/get/incr 使用随机key

     

    -p

    通过管道传输

    1

    -q

    强制退出redis,仅显示query/sec值

     

    -csv

    以csv格式输出

     

    -l

    生成循环,永久执行测试

     

    Redis客户端连接

    Redis通过监听一个TCP端口或者Unix socket的方式来接收来自客户端的连接

    Redis客户端最大连接数maxclients的默认值是10000,也可在redis.conf进行修改      config     get   maxclients

    Redis客户端命令

    CLIENT  LIST

    返回连接到redis服务的客户端列表

    CLIENT SETNAME

    设置当前连接的名称

    CLIENT GETNAME

    获取通过CLIENT SETNAME命令设置的服务名称

    CLIENT PAUSE

    挂起客户端连接,指定挂起的时间以毫秒计

    CLIENT KILL

    关闭客户端连接

    Redis管道技术

    Redis是一种基于客户端--服务端模型以及请求/响应协议的TCP服务

    步骤:1、客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。

                 2、服务端处理命令,并将结果返回给客户端

    Redis管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

    管道技术是最显著的优势是提高了redis服务的性能。

    Redis分区:分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集

    分区的优势:利用计算机内存的和值,允许我们构造更大的数据库。多核和多台计算机,允许我们扩展计算能力,通过多台计算机和网络适配器,允许扩展网络带宽。

    分区类型:范围分区:映射一定范围的对象到特定的redis实例

    哈希分区:对任何key都适用

  • 相关阅读:
    UI 常用方法总结之--- UITableView
    UITextFiled 通知监听
    ios 本地通知
    AFNetworking 请求头的设置
    UI总结
    gitlab-server环境搭建
    redis 配置文件示例
    搭建spark集群
    kafka集群安装
    zookeeper集群搭建
  • 原文地址:https://www.cnblogs.com/cye9971-/p/11192455.html
Copyright © 2020-2023  润新知