我的redis常用命令集

Redis常用命令集

1、Redis常用命令集

1)连接操作命令

    quit:关闭连接(connection)
    auth:简单密码认证
    help cmd: 查看cmd帮助,例如:help quit

2)持久化

    save:将数据同步保存到磁盘
    bgsave:将数据异步保存到磁盘
    lastsave:返回上次成功将数据保存到磁盘的Unix时戳
    shundown:将数据同步保存到磁盘,然后关闭服务

3)远程服务控制

    info:提供服务器的信息和统计
    monitor:实时转储收到的请求
    slaveof:改变复制策略设置
    config:在运行时配置Redis服务器

4)对value操作的命令

    exists(key):确认一个key是否存在
    del(key):删除一个key
    type(key):返回值的类型
    keys(pattern):返回满足给定pattern的所有key
    randomkey:随机返回key空间的一个
    keyrename(oldname, newname):重命名key
    dbsize:返回当前数据库中key的数目
    expire:设定一个key的活动时间(s)
    ttl:获得一个key的活动时间
    select(index):按索引查询
    move(key, dbindex):移动当前数据库中的key到dbindex数据库
    flushdb:删除当前选择数据库中的所有key
    flushall:删除所有数据库中的所有key

5)String

    set(key, value):给数据库中名称为key的string赋予值value
    get(key):返回数据库中名称为key的string的value
    getset(key, value):给名称为key的string赋予上一次的value
    mget(key1, key2,…, key N):返回库中多个string的value
    setnx(key, value):添加string,名称为key,值为value
    setex(key, time, value):向库中添加string,设定过期时间time
    mset(key N, value N):批量设置多个string的值
    msetnx(key N, value N):如果所有名称为key i的string都不存在
    incr(key):名称为key的string增1操作
    incrby(key, integer):名称为key的string增加integer
    decr(key):名称为key的string减1操作
    decrby(key, integer):名称为key的string减少integer
    append(key, value):名称为key的string的值附加value
    substr(key, start, end):返回名称为key的string的value的子串

6)List

    rpush(key, value):在名称为key的list尾添加一个值为value的元素
    lpush(key, value):在名称为key的list头添加一个值为value的 元素
    llen(key):返回名称为key的list的长度
    lrange(key, start, end):返回名称为key的list中start至end之间的元素
    ltrim(key, start, end):截取名称为key的list
    lindex(key, index):返回名称为key的list中index位置的元素
    lset(key, index, value):给名称为key的list中index位置的元素赋值
    lrem(key, count, value):删除count个key的list中值为value的元素
    lpop(key):返回并删除名称为key的list中的首元素
    rpop(key):返回并删除名称为key的list中的尾元素
    blpop(key1, key2,… key N, timeout):lpop命令的block版本。
    brpop(key1, key2,… key N, timeout):rpop的block版本。
    rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

7)Set

    sadd(key, member):向名称为key的set中添加元素member
    srem(key, member) :删除名称为key的set中的元素member
    spop(key) :随机返回并删除名称为key的set中一个元素
    smove(srckey, dstkey, member) :移到集合元素
    scard(key) :返回名称为key的set的基数
    sismember(key, member) :member是否是名称为key的set的元素
    sinter(key1, key2,…key N) :求交集
    sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
    sunion(key1, (keys)) :求并集
    sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
    sdiff(key1, (keys)) :求差集
    sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
    smembers(key) :返回名称为key的set的所有元素
    srandmember(key) :随机返回名称为key的set的一个元素

8)Hash

    hset(key, field, value):向名称为key的hash中添加元素field
    hget(key, field):返回名称为key的hash中field对应的value
    hmget(key, (fields)):返回名称为key的hash中field i对应的value
    hmset(key, (fields)):向名称为key的hash中添加元素field
    hincrby(key, field, integer):将名称为key的hash中field的value增加integer
    hexists(key, field):名称为key的hash中是否存在键为field的域
    hdel(key, field):删除名称为key的hash中键为field的域
    hlen(key):返回名称为key的hash中元素个数
    hkeys(key):返回名称为key的hash中所有键
    hvals(key):返回名称为key的hash中所有键对应的value
    hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

2、redis-benchmark相关

redis-benchmark-h localhost -p 6379 -c 100 -n 100000
100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能
./redis-benchmark -n 100000 –c 50
    ====== –c 50 ======
    100000 requests completed in 1.93 seconds (100000个请求完成于 1.93 秒 )
    50 parallel clients (每个请求有50个并发客户端)
    3 bytes payload (每次写入3字节)
    keep alive: 1 (保持1个连接)
    58.50% <= 0 milliseconds
    99.17% <= 1 milliseconds
    99.58% <= 2 milliseconds
    99.85% <= 3 milliseconds
    99.90% <= 6 milliseconds
    100.00% <= 9 milliseconds
(所有请求在62毫秒内完成)
    114293.71 requests per second(每秒 114293.71 次查询)

redis-benchmark参数
-h 设置检测主机IP地址,默认为127.0.0.1
-p 设置检测主机的端口号,默认为6379 
-s<socket> 服务器套接字(压倒主机和端口)
-c  并发连接数 
-n 请求数
-d 测试使用的数据集的大小/字节的值(默认3字节)
-k 1:表示保持连接(默认值)0:重新连接 
-r SET/GET/INCR方法使用随机数插入数值,设置10则插入值为rand:000000000000 - rand:000000000009
-P 默认为1(无管道),当网络延迟过长时,使用管道方式通信(请求和响应打包发送接收)
-q 简约信息模式,只显示查询和秒值等基本信息。
--csv 以CSV格式输出信息
-l 无线循环插入测试数据,ctrl+c停止
-t<tests> 只运行<tests>测试逗号分隔的列表命令,如:-t ping,set,get
-I 空闲模式。立即打开50个空闲连接和等待。

例子: 
$ redis-benchmark基本测试
$ redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20
$ redis-benchmark -t set -n 1000000 -r 100000000
$ redis-benchmark -t ping,set,get -n 100000 –csv
$ redis-benchmark -r 10000 -n 10000 lpush mylist ele:rand:000000000000

3.redis-server

Redis服务器的daemon启动程序
redis-server         启动并加装默认配置文件[/path/to/redis.conf]
redis-server         /biran/conf/redis.conf启动并加装指定配置文件
redis-server - (read config from stdin) 使用标准输入读取配置为启动参数
redis-server --test-memory 256 检测256MB内存
redis-server –version 查版本号

4.redis-cli

Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
可输入redis-cli直接进入命令行操作界面。
redis-cli参数
-h  设置检测主机IP地址,默认为127.0.0.1
-p  设置检测主机的端口号,默认为6379
-s<socket> 服务器套接字(压倒主机和端口)
-a 连接到Master服务器时使用的密码
-r 执行指定的N次命令
-i 执行命令后等待N秒,如–i 0.1 info(执行后等0.1秒)
-n 指定连接N号ID数据库,如–n 3(连接3号数据库)
-x 从控制台输入的信息中读取最后一个参数
-d 定义多个定界符为默认输出格式(默认: \n)
--raw 使用原数据格式返回输出内容
--latency 进入一个不断延时采样的特殊模式
--slave 模拟一个从服务器到主服务器的命令显示反馈
--pipe 使用管道协议模式
--bigkeys 监听显示数据量大的key值,--bigkeys -i 0.1
--help 显示命令行帮助信息
--version 显示版本号

例子:
$ redis-cli进入命令行模式
$ redis-cli -r 3 info 重复执行info命令三次
$ cat testStr.txt | redis-cli -x set testStr读取testStr.txt文件所有内容设置为testStr的值
$ redis-cli -r 100 lpush mylist x
$ redis-cli -r 100 -i 1 info | grep used_memory_human

5.获取服务器的信息和统计

redis-cli info查询系统信息。默认为localhost,端口为6379。

redis-cli -p 6379 info |  grep '\<used_memory\>'过滤查询used_memory属性

当used_memory_rss接近maxmemory或者used_memory_peak超过maxmemory时,要加大maxmemory负责性能下降

6.redis TTL键值删除机制

1. 根据hz,定期执行删除动作。这部分就是你发的截图,目标是将要过期的key的百分比降到了25%以下。具体动作是:
1) 随机测试100个设置了过期时间的key
2) 删除所有发现的已过期的key
3) 若删除的key超过25个则重复步骤1

2. 但是根据上面的算法,有可能每次删除动作持续时间长,对系统负载过高。所以又来了个ACTIVE_EXPIRE_CYCLE_SLOW_TIME_PERC(25),表示最多使用25%的cpu时间来执行删除动作。
然后根据:timelimit = 1000000*ACTIVE_EXPIRE_CYCLE_SLOW_TIME_PERC/server.hz/100  算到了每次删除动作最长的执行时间

7.redis冷门命令
以下为redis冷门命令,可自行搜索。

redis-cli -h <ip> --latency-history
redis-cli -h <ip> --latency
redis-cli -h <ip> --stat
redis-cli -h <ip> --slaves
redis-cli -h <ip> --latency-dist
redis-cli -h <ip> -r 5 -i 1 ping

猜你喜欢

转载自blog.51cto.com/zhangyc/2325178
今日推荐