- 批量删除特定前缀的keys
redis-cli KEYS "prefix:*" | xargs redis-cli DEL
- 返回list的长度
127.0.0.1:6379> LPUSH test "hello" (integer) 1 127.0.0.1:6379> LPUSH test "world" (integer) 2 127.0.0.1:6379> LLEN test (integer) 2
- LRANGE的使用
127.0.0.1:6379> RPUSH test1 "one" (integer) 1 127.0.0.1:6379> RPUSH test1 "two" (integer) 2 127.0.0.1:6379> RPUSH test1 "three" (integer) 3 127.0.0.1:6379> LRANGE test1 0 0 1) "one" 127.0.0.1:6379> LRANGE test1 -3 2 1) "one" 2) "two" 3) "three" 127.0.0.1:6379> LRANGE test1 -100 100 1) "one" 2) "two" 3) "three" 127.0.0.1:6379> LRANGE test1 5 10 (empty list or set)的使用
- MONITOR的使用
monitor用来监控正在运行的命令
redis 127.0.0.1:6379> MONITOR OK 1371241093.375324 "monitor" 1371241109.735725 "keys" "*" 1371241152.344504 "set" "testkey" "1" 1371241165.169184 "get" "testkey"
- 查询慢查询
slowlog get 25 #打印前25个慢的查询 slowlog len #显示slowlog的长度 slowlog reset #重置slowlog
例子:
你可以通过一下命令,查询当前运行比较慢的命令
slowlog reset
slowlog get 25 - 搜索keys
keys pattern keys pattern* keys *pattern* keys *pattern
- 通常的操作
del <key> exists <key> expire <key> <seconds>
get <key>
set <key> <value>
setnx <key> <valule> #仅仅当key不存在的时候,才设置值
mget <key> <key> ...
mset <key> <value> <key> <value>
incr <key> #增加key中的值的数
decr <key> - 列表
lrange <key> <start> <stop> lrange mylist 0 -1 #Get all of a list lindex mylist 5 #Get by index llen mylist #Get length
lpush mylist "value" lpush mylist 5 rpush mylist "value"
lpushx mylist 6 #only push in mylist exists
lpushx mylist 0 #only push in mylist exists
lpop mylist
rpop mylist
lrem mylist 1 "value" #删除一次为value值的key
lset mylist 2 6 #mylist[2]=6
ltrim <key> <start> <stop> #仅仅包含特定范围的值
例子
127.0.0.1:6379> LPUSH dufeng_test "value"
(integer) 1
127.0.0.1:6379> LPUSH dufeng_test 5
(integer) 2
127.0.0.1:6379> RPUSH dufeng_test "value"
(integer) 3
127.0.0.1:6379> LRANGE dufeng_test 0 4
1) "5"
2) "value"
3) "value" - Hashes命令
hexists myhash field1 #检查hash key是否存在 hget myhash field1 hdel myhash field2 hset myhash field1 "value" hsetnx myhash field1 "value" hgetall myhash hkeys myhash hlen myhash #批量命令 hmget <key> <key> hmset <key> <value> <key> <value>
#计数命令
hincrby myhash field1 1
hincrby myhash field1 5
hincrby myhash field1 -1
hincrbrfloat myhash field2 1.123445
例子:
redis> HSET myhash field 5
(integer) 1
redis> HINCRBY myhash field 1
(integer) 6
redis> HINCRBY myhash field -1
(integer) 5
redis> HINCRBY myhash field -10
(integer) -5 -
查看客户端的连接数
[root@hadoop252 ~]# redis-cli info | grep connected connected_clients:39 connected_slaves:0
- 服务器统计
$ redis-cli INFO redis_version:2.2.12 redis_git_sha1:00000000 redis_git_dirty:0 arch_bits:64 multiplexing_api:epoll process_id:8353 uptime_in_seconds:2592232 uptime_in_days:30 lru_clock:809325 used_cpu_sys:199.20 used_cpu_user:309.26 used_cpu_sys_children:12.04 used_cpu_user_children:1.47 connected_clients:2 # <---- connection count connected_slaves:0 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 used_memory:6596112 used_memory_human:6.29M # <---- memory usage used_memory_rss:17571840 mem_fragmentation_ratio:2.66 use_tcmalloc:0 loading:0 aof_enabled:0 changes_since_last_save:0 bgsave_in_progress:0 last_save_time:1371241671 bgrewriteaof_in_progress:0 total_connections_received:118 total_commands_processed:1091 expired_keys:441 evicted_keys:0 keyspace_hits:6 keyspace_misses:1070 hash_max_zipmap_entries:512 hash_max_zipmap_value:64 pubsub_channels:0 pubsub_patterns:0 vm_enabled:0 role:master # <---- master/slave in replication setup db0:keys=91,expires=88
- 列出连接
#从2.4版本开始,你可以使用下面的命令列出连接 CLIENT LIST 使用下面的命令杀死一个连接 CLIENT KILL <IP>:<port>
- 数据库备份
BGSAVE
- debug延迟
#查看在redis服务器上的系统延迟时间 redis-cli --intrinsic-latency 100 #从客户端查看延迟时间 redis-cli --latency -h <host> -p <port> #如果你看到有比较高的延迟,检测是否透明的大页面是否禁止,使用一下命令禁止它 echo never > /sys/kernel/mm/transparent_hugepage/enabled
- 在redis占用内存比较大的keys
redis-cli --bigkeys