• 0. Redis-Server(操作)


    ping

    # 客户端和服务器连接正常
    redis> PING
    PONG
    # 客户端和服务器连接不正常(网络不正常或服务器未能正常运行)
    redis 127.0.0.1:6379> PING
    Could not connect to Redis at 127.0.0.1:6379: Connection refused
     
    echo
    ECHO message
    返回值:message自身
    redis> ECHO "Hello Moto"
    "Hello Moto"
    redis> ECHO "Goodbye Moto"
    "Goodbye Moto"
     
    auth
    AUTH password
    redis> CONFIG SET requirepass secret_password # 将密码设置为secret_password
    OK
    redis> QUIT                                                             # 退出再连接,让新密码对客户端生效
    [huangz@mypad]$ redis
    redis> PING                                                             # 未验证密码,操作被拒绝
    (error) ERR operation not permitted
    redis> AUTH wrong_password_testing                  # 尝试输入错误的密码
    (error) ERR invalid password
    redis> AUTH secret_password                                # 输入正确的密码
    OK
    redis> PING                                                             # 密码验证成功,可以正常操作命令了
    PONG
    # 清空密码
    redis> CONFIG SET requirepass "" # 通过将密码设为空字符来清空密码
    OK
    redis> QUIT
    $ redis # 重新进入客户端
    redis> PING # 执行命令不再需要密码,清空密码操作成功
    PONG
     
    -------------------------------------------------------------------------------------------------------
    select
    SELECT index
    切换到指定的数据库,数据库索引号index用数字值指定,以0作为起始索引值【最大15】,默认使用0号数据库
    redis> SELECT 1                    # 使用1 号数据库
    OK
    redis[1]> GET db_number    # 已经切换到1 号数据库,注意Redis 现在的命令提示符多了个
    (nil)
    redis[1]> SET db_number 1
    OK
    redis[1]> GET db_number
    "1"
    redis[1]> SELECT 3                 # 再切换到3 号数据库
    OK
    redis[3]>                                # 提示符从[1] 改变成了[3]
     
    DBSIZE
    返回当前数据库的key的数量
    redis> DBSIZE
    (integer) 5
    redis> SET new_key "hello_moto"       # 增加一个key 试试
    OK
    redis> DBSIZE
    (integer) 6
    redis> SELECT 1                                  # 切换到其他库
    OK
    redis[1]> DBSIZE
    (integer) 1
     
    FLUSHALL
    清空整个Redis服务器的数据(删除所有数据库的所有key )
    redis> DBSIZE                                    # 0 号数据库的key 数量
    (integer) 9
    redis> SELECT 1                                  # 切换到1 号数据库
    OK
    redis[1]> DBSIZE                                # 1 号数据库的key 数量
    (integer) 6
    redis[1]> flushall                                 # 清空所有数据库的所有key
    OK
    redis[1]> DBSIZE                                # 1 号数据库被清空了
    (integer) 0
    redis[1]> SELECT 0                              # 0 号数据库(以及其他所有数据库) 也一样
    OK
    redis> DBSIZE
    (integer) 0
    FLUSHDB
    清空当前数据库中的所有key
    redis> DBSIZE                                     # 清空前的key 数量
    (integer) 4
    redis> FLUSHDB
    OK
    redis> DBSIZE                                     # 清空后的key 数量
    (integer) 0
    -----------------------------------------------------------------------------------------------------
    config get 
    CONFIG GET parameter
    redis> CONFIG GET s*
    1) "save"                                     # 参数名:save
    2) "900 1 300 10 60 10000"                  # save 参数的值
    3) "slave-serve-stale-data"                   # 参数名:slave-serve-stale-data
    4) "yes"                                      # slave-serve-stale-data 参数的值
     
    config set
    CONFIG SET parameter value
    redis> CONFIG SET slowlog-max-len 10086      #注意值是最小元值
    OK
     
    CONFIG REWRITE
    保存当前的配置到配置文件中 【2.8以上版本支持】
    config dump             # sinaredis支持
     
    CONFIG RESETSTAT
    重置INFO命令中的某些统计数据,包括:
    • Keyspace hits (键空间命中次数)
    • Keyspace misses (键空间不命中次数)
    • Number of commands processed (执行命令的次数)
    • Number of connections received (连接服务器的次数)
    • Number of expired keys (过期key的数量)
    • Number of rejected connections (被拒绝的连接数量)
    • Latest fork(2) time(最后执行fork(2) 的时间)
    • Theaof_delayed_fsynccounter(aof_delayed_fsync计数器的值)
    -----------------------------------------------------------------------------------------------------------------------------------------------
    CLIENT LIST
    以人类可读的格式,返回所有连接到服务器的客户端信息和统计数据
    127.0.0.1:6379> CLIENT LIST
    addr=127.0.0.1:55754 fd=7 name= age=6582 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
    详细参数参考redis手册
     
    CLIENT KILL ip:port
    关闭地址为ip:port的客户端
     
    redis-cli -h host -p port config set resetclients 1     #sinaredis
    -------------------------------------------------------------------------------------------------------------------------------------------------
    BGSAVE
    在后台异步(Asynchronously)保存当前数据库的数据到磁盘。
    BGSAVE命令执行之后立即返回OK,然后Redis fork出一个新子进程,原来的Redis进程(父进程) 继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
    客户端可以通过LASTSAVE命令查看相关信息,判断BGSAVE命令是否执行成功。
     
    SAVE
    SAVE命令执行一个同步保存操作,将当前Redis实例的所有数据快照(snapshot)以RDB文件的形式保存到硬盘。
    一般来说,在生产环境很少执行SAVE操作,因为它会阻塞所有客户端,保存数据库的任务通常由BGSAVE命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时,SAVE可以作为保存数据的最后手段来使用。
    配置文件:
    Save分别表示 900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改
    Redis默认配置文件中提供了三个条件:
    save 900 1
    save 300 10
    save 60 10000
     
    SHUTDOWN
    SHUTDOWN命令执行以下操作:
    • 停止所有客户端
    • 如果有至少一个保存点在等待,执行SAVE命令
    • 如果AOF选项被打开,更新AOF文件
    • 关闭redis服务器(server)
    redis> shutdown save
    --------------------------------------------------------------------------------------------------------------------------------------------------------
    slaveof
    SLAVEOF host port       #设置主库,将清空当前数据
    SLAVEOF NO ONE        #提升为master,不会丢当前数据
     
    SLOWLOG subcommand [argument]
    1). SLOWLOG GET       #查看所有slowlog
    2). SLOWLOG GET N   #从slowlog队列中读取命令信息,N表示最近N条命令的信息。
    3). SLOWLOG LEN       #获取slowlog队列的长度。
    4). SLOWLOG RESET   #清空slowlog中的内容
    -------------------------------------------------------------------------------------------------------------------------------------------------------
    info
    INFO [section]
    •   server: 一般Redis服务器信息,包含以下域:
        –redis_version: Redis 服务器版本
        –redis_git_sha1: Git SHA1
        –redis_git_dirty: Git dirty flag
        –os: Redis 服务器的宿主操作系统
        –arch_bits: 架构(32或64位)
        –multiplexing_api: Redis 所使用的事件处理机制
        –gcc_version: 编译Redis时所使用的GCC版本
        –process_id: 服务器进程的PID
        –run_id: Redis 服务器的随机标识符(用于Sentinel和集群)
        –tcp_port: TCP/IP 监听端口
        –uptime_in_seconds: 自Redis服务器启动以来,经过的秒数
        –uptime_in_days: 自Redis服务器启动以来,经过的天数
        –lru_clock: 以分钟为单位进行自增的时钟,用于LRU管理
    •   clients: 已连接客户端信息,包含以下域:
        –connected_clients: 已连接客户端的数量(不包括通过从属服务器连接的客户端)
        –client_longest_output_list: 当前连接的客户端当中,最长的输出列表
        –client_longest_input_buf: 当前连接的客户端当中,最大输入缓存
        –blocked_clients: 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数
    •   memory: 内存信息,包含以下域:
        –used_memory: 由Redis分配器分配的内存总量,以字节(byte)为单位
        –used_memory_human: 以人类可读的格式返回Redis分配的内存总量
        –used_memory_rss: 从操作系统的角度,返回Redis已分配的内存总量(俗称常驻集大小)。这个值和top、ps等命令的输出一致
        –used_memory_peak: Redis 的内存消耗峰值(以字节为单位)
        –used_memory_peak_human: 以人类可读的格式返回Redis的内存消耗峰值
        –used_memory_lua: Lua 引擎所使用的内存大小(以字节为单位)
        –mem_fragmentation_ratio: used_memory_rss和used_memory之间的比率
        –mem_allocator: 在编译时指定的,Redis所使用的内存分配器。可以是libc 、jemalloc或者tcmalloc 。
        在理想情况下,used_memory_rss的值应该只比used_memory稍微高一点儿。
        当rss > used,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。内存碎片的比率可以通过mem_fragmentation_ratio的值看出。
        当used > rss时,表示Redis的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
        Because Redis does not have control over how its allocations are mapped to memory pages,
        highused_memory_rssis often the result of a spike in memory usage.
       
        当Redis释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。如果Redis释放了内存,却没有将内存返还给操作系统,那么used_memory的值可
        能和操作系统显示的Redis内存占用并不一致。
        查看used_memory_peak的值可以验证这种情况是否发生
    •   persistence: RDB和AOF的相关信息
    •   stats: 一般统计信息
    •   replication: 主/从复制信息
    •   cpu: CPU 计算量统计信息
    •   commandstats: Redis 命令统计信息
    •   cluster: Redis 集群信息
    •   keyspace: 数据库相关的统计信息
     
  • 相关阅读:
    1.27
    1.25
    Representation Learning with Contrastive Predictive Coding
    Learning a Similarity Metric Discriminatively, with Application to Face Verification
    噪声对比估计(负样本采样)
    Certified Adversarial Robustness via Randomized Smoothing
    Certified Robustness to Adversarial Examples with Differential Privacy
    Dynamic Routing Between Capsules
    Defending Adversarial Attacks by Correcting logits
    Visualizing Data using t-SNE
  • 原文地址:https://www.cnblogs.com/51runsky/p/c3f2b3b3a9b658907da1bf17f0536168.html
Copyright © 2020-2023  润新知