append:如果key存在,那么直接在value追加,如果Key不存在,建立一个key并设置为空字符串
127.0.0.1:6379> exists mk
(integer) 0
127.0.0.1:6379> append mk "Hello"
(integer) 5
127.0.0.1:6379> append mk " World!"
(integer) 12
127.0.0.1:6379> get mk
"Hello World!"
127.0.0.1:6379> strlen mk
(integer) 12
127.0.0.1:6379> getrange mk 0 4
"Hello"
127.0.0.1:6379> getrange mk 5 12
" World!"
127.0.0.1:6379> setrange mk 6 "gaoquan"
(integer) 12
127.0.0.1:6379> get mk
"Hello gaoquan"
auth:如果配置文件设置了密码,那么客户端想操作redis,需要使用此命令
127.0.0.1:6379> get mk
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth root123
OK
127.0.0.1:6379> get mk
(nil)
bgrewriteaof:重新持久化redis到appendonly.aof文件,aof中冗余的key value会被删除,存储实际的内容
bgsave:保存dump.rdb,进行rdb备份,也是一种持久化方式
bitcount: 计算指定区间的bit数,字母4bit,数字3bit,特殊字符2bit
127.0.0.1:6379> set mykey "$11111"
OK
127.0.0.1:6379> bitcount mykey 0 5
(integer) 17
127.0.0.1:6379> set mykey "$$$$$$"
OK
127.0.0.1:6379> bitcount mykey 0 5
(integer) 12
bitop:对给定值进行按位与或异或操作
127.0.0.1:6379> set key1 "000"
OK
127.0.0.1:6379> set key2 "111"
OK
127.0.0.1:6379> bitop and dest key1 key2
(integer) 3
127.0.0.1:6379> get dest
"000"
127.0.0.1:6379> bitop or dest key1 key2
(integer) 3
127.0.0.1:6379> get dest
"111"
127.0.0.1:6379> bitop xor dest key1 key2
(integer) 3
127.0.0.1:6379> get dest
"\x01\x01\x01"
bitpos:查找到第一个为0或者1的位置
127.0.0.1:6379> SET mykey "\xff\xf0\x00" 注:"\xff\xf0\x00"转换为二进制为111111111111000000000000
OK
127.0.0.1:6379> bitpos mykey 0
(integer) 12
127.0.0.1:6379> bitpos mykey 1
(integer) 0
blpop:弹出遇到列表中的第一个非空列表的第一个元素,当所有列表都为空时,那么会阻塞,此时如果加入新的列表元素,命令继续执行
127.0.0.1:6379> rpush list1 a b
(integer) 2
127.0.0.1:6379> rpush list2 c d
(integer) 2
127.0.0.1:6379> blpop list1 list2 0
1) "list1"
2) "a"
127.0.0.1:6379> blpop list1 list2 0
1) "list1"
2) "b"
127.0.0.1:6379> blpop list1 list2 0
1) "list2"
2) "c"
127.0.0.1:6379> blpop list1 list2 0
1) "list2"
2) "d"
127.0.0.1:6379> blpop list1 list2 0 注:再开一个session执行rpush list1 a,否则命令会一直阻塞
1) "list1"
2) "a"
(6.10s)
brpop:弹出遇到第一个非空列表中的最后一个元素,当所有列表都为空时,那么会阻塞,此时如果加入新的列表元素,命令继续执行
brlpoprpush:从A列表中弹出元素到B列表,当没元素时阻塞。主要用来做安全队列。
(消费者端取到消息的同时把该消息放入一个正在处理中的列表。 当消息被处理了之后,该命令会使用 LREM 命令来移除正在处理中列表中的对应消息。
另外,可以添加一个客户端来监控这个正在处理中列表,如果有某些消息已经在这个列表中存在很长时间了(即超过一定的处理时限), 那么这个客户端会把这些超时消息重新加入到队列中)
127.0.0.1:6379> rpush mylist1 "red" "yellow" "blue"
(integer) 3
127.0.0.1:6379> lrange mylist1 0 -1
1) "red"
2) "yellow"
3) "blue"
127.0.0.1:6379> brpoplpush mylist1 mylist2 0
"blue"
127.0.0.1:6379> brpoplpush mylist1 mylist2 0
"yellow"
127.0.0.1:6379> brpoplpush mylist1 mylist2 0
"red"
127.0.0.1:6379> brpoplpush mylist1 mylist2 0
"black"
(797.37s)
127.0.0.1:6379> lrange mylist1 0 -1
(empty list or set)
127.0.0.1:6379> lrange mylist2 0 -1
1) "black"
2) "red"
3) "yellow"
4) "blue"
client kill:断开客户端与redis-server的链接
127.0.0.1:6379> client list
id=2 addr=127.0.0.1:57613 fd=7 name= age=8933 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
id=3 addr=127.0.0.1:57614 fd=8 name= age=3346 idle=91 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=rpush
127.0.0.1:6379> client kill 127.0.0.1:57614
OK
client list:获得客户端连接列表
127.0.0.1:6379> client list
id=2 addr=127.0.0.1:57613 fd=7 name= age=8933 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
id=3 addr=127.0.0.1:57614 fd=8 name= age=3346 idle=91 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=rpush
client setname:设置当前client的名称
client getname:获取当前client的名称
127.0.0.1:6379> client setname 71
OK
127.0.0.1:6379> client list
id=2 addr=127.0.0.1:57613 fd=7 name= age=9464 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
id=4 addr=127.0.0.1:57615 fd=8 name=71 age=498 idle=95 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client
127.0.0.1:6379> client GETNAME
"71"
client pause 时间(毫秒):将所有的client暂停执行
127.0.0.1:6379> client pause 10000
OK
client reply {on|off|skip}:3.2才支持
command:列出所有的redis命令
command getkeys:获取key
127.0.0.1:6379> command getkeys mset a b c d e f
1) "a"
2) "c"
3) "e"
command info:查看redis命令的信息
127.0.0.1:6379> command info get
1) 1) "get"
2) (integer) 2
3) 1) readonly
2) fast
4) (integer) 1
5) (integer) 1
6) (integer) 1
config get:获取配置文件的参数
127.0.0.1:6379> config get
(error) ERR Wrong number of arguments for CONFIG get
127.0.0.1:6379> config get "*pass*"
1) "requirepass"
2) "root123"
127.0.0.1:6379> config get "*slave*"
1) "repl-ping-slave-period"
2) "10"
3) "slave-priority"
4) "100"
5) "min-slaves-to-write"
6) "0"
7) "min-slaves-max-lag"
8) "10"
9) "cluster-slave-validity-factor"
10) "10"
11) "slave-serve-stale-data"
12) "yes"
13) "slave-read-only"
14) "yes"
15) "slaveof"
16) ""
config rewrite:重写redis配置文件,并生效,不止内存中生效,实际配置文件也生效,include开头的参数不能被重写。
127.0.0.1:6379> auth root123
OK
127.0.0.1:6379> config set requirepass root456
OK
127.0.0.1:6379> config rewrite
OK
127.0.0.1:6379> auth root456
OK
config set:更改内存中的参数,配置文件不跟随生效,重启失效
127.0.0.1:6379> config set requirepass world
OK
127.0.0.1:6379> auth world
OK
config resetstat:充值redis的静态统计信息,具体可先执行info,观察输出信息,然后再使用config resetstat,然后再观察info信息。
dbsize:获取数据库共有多少个key,可通过keys *来验证
127.0.0.1:6379> dbsize
(integer) 11
debug object key:获取key的一些信息
127.0.0.1:6379> debug object mykey
Value at:0x7fdb02035e60 refcount:1 encoding:embstr serializedlength:4 lru:13543108 lru_seconds_idle:90074
debug segfault:执行一个非法的内存指令,从而让redis server崩溃,用于bug调试
127.0.0.1:6379> debug segfault
Could not connect to Redis at 127.0.0.1:6379: Connection refused
(0.80s)
not connected> auth world
Could not connect to Redis at 127.0.0.1:6379: Connection refused
decr key:将key中储存的数字减1,key不存在则将value置为0,类型不是整型则返回一个错误
127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> get num
"9"
127.0.0.1:6379> decr num1
(integer) -1
127.0.0.1:6379> get num1
"-1"
127.0.0.1:6379> decr num1
(integer) -2
127.0.0.1:6379> get num1
"-2"
127.0.0.1:6379> decr name
(error) ERR value is not an integer or out of range
decrby key decrement:将key所存储的值减去指定的数值
127.0.0.1:6379> get num
"9"
127.0.0.1:6379> decrby num 2
(integer) 7
127.0.0.1:6379> get num
"7"
del key,[key1,key2]:删除key
127.0.0.1:6379> get num
"9"
127.0.0.1:6379> decrby num 2
(integer) 7
127.0.0.1:6379> get num
"7"
discard:取消事务,放弃执行事务块内所有的指令
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incr a
QUEUED
127.0.0.1:6379> incr b
QUEUED
127.0.0.1:6379> exec
1) (error) ERR value is not an integer or out of range
2) (integer) 1
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incr a
QUEUED
127.0.0.1:6379> incr b
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> exec
(error) ERR EXEC without MULTI
dump key:序列化给定的key,返回序列化的值
restore key 0 (dump key):反序列化给定的序列化值,并将它和给定的key绑定
127.0.0.1:6379> dump mykey
"\x00\xc0\n\x06\x00\xf8r?\xc5\xfb\xfb_("
127.0.0.1:6379> del mykey
(integer) 1
127.0.0.1:6379> restore mykey 0 "\x00\xc0\n\x06\x00\xf8r?\xc5\xfb\xfb_("
OK
127.0.0.1:6379> get mykey
"10"
echo:显示给定的值
127.0.0.1:6379> echo "helloworld"
"helloworld"
eval:通过内置的 Lua 解释器,可以使用 EVAL 命令对 Lua 脚本进行求值
http://doc.redisfans.com/script/eval.html
evalsha:根据给定的 sha1 校验码,对缓存在服务器中的脚本进行求值
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> eval "return redis.call('get','foo')" 0
"bar"
127.0.0.1:6379> script load "return redis.call('get','foo')"
"6b1bf486c81ceb7edf3c093f4c48582e38c0e791"
127.0.0.1:6379> evalsha 6b1bf486c81ceb7edf3c093f4c48582e38c0e791 0
"bar"
exec:在multi执行所有的命令
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set name "yellow"
QUEUED
127.0.0.1:6379> append name " blue"
QUEUED
127.0.0.1:6379> append name " black"
QUEUED
127.0.0.1:6379> exec
1) OK
2) (integer) 11
3) (integer) 17
127.0.0.1:6379> get name
"yellow blue black"
exists key:判断key是否存在
127.0.0.1:6379> keys *
1) "key2"
2) "dest"
3) "mykey"
4) "num1"
5) "name"
6) "list1"
7) "b"
8) "mylist2"
9) "c"
10) "foo"
11) "key1"
12) "list2"
13) "a"
14) "e"
127.0.0.1:6379> exists name b list5
(integer) 2
127.0.0.1:6379> exists name b list1
(integer) 3
expire key seconds:key生效时间,时间过后回收
127.0.0.1:6379> set name "gaoquan"
OK
127.0.0.1:6379> get name
"gaoquan"
127.0.0.1:6379> expire name 2
(integer) 1
127.0.0.1:6379> get name
(nil)
expireat key timestamp:设置过期时间到一个指定的unix时间戳
[root@mysql57-71 ~]# date -d '2016-02-26 17:16' +%s
1456478160
127.0.0.1:6379> set name "gaoquan"
OK
127.0.0.1:6379> expireat name 1456478160
(integer) 1
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists name
(integer) 0
flushall:清除所有数据库信息
flushdb:清除当前数据库的所有key
get key:获取key对应的value,value只能为string
127.0.0.1:6379> get key2
"111"
setbit key offset value:设置指定key偏移量的位置的值,场景主要用作统计活跃用户
getbit key offset:获取指定Key偏移量的位置的值
127.0.0.1:6379> setbit mykey1 5 1
(integer) 0
127.0.0.1:6379> get mykey1
"G"
getrange key start end:获取key的指定区间的子字符串
127.0.0.1:6379> set mykey "hello world!"
OK
127.0.0.1:6379> getrange mykey 0 -1
"hello world!"
127.0.0.1:6379> getrange mykey 0 1
"he"
127.0.0.1:6379>
getset key value:返回key的旧值并将值用指定的value替代
127.0.0.1:6379> set foo "bar"
OK
127.0.0.1:6379> getset foo "run"
"bar"
127.0.0.1:6379> get foo
"run"