zoukankan      html  css  js  c++  java
  • 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: 数据库相关的统计信息
     
  • 相关阅读:
    LAMP动态网站安装脚本
    图片上传
    如何用qq代理发送邮件
    初识c#
    Eclipse使用技巧
    maven中 install的install:install的区别
    Git的各种状态
    phpStorm中Structure窗口中的符号代表的意思
    Apache+PHP+MySQL+phpMyAdmin+WordPress搭建
    Session重点整理
  • 原文地址:https://www.cnblogs.com/51runsky/p/c3f2b3b3a9b658907da1bf17f0536168.html
Copyright © 2011-2022 走看看