[root@localhost ~]# redis-cli #执行Redis客户端工具
127.0.0.1:6379> EXISTS mykey #判断该键是否存在,存在返回1,否则返回0(integer) 0
127.0.0.1:6379> APPEND mykey "hello"#若该键并不存在,则创建key,存在则将内容追加,append命令返回当前Value的长度(integer) 5
127.0.0.1:6379> APPEND mykey " world"(integer) 11
127.0.0.1:6379> GET mykey #通过get命令获取该键,以判断append的结果"hello world"
127.0.0.1:6379> SET mykey "this is mykey"#通过set命令为键设置新值,并覆盖原有值,若为字符串需要加双引号或单引号
OK
127.0.0.1:6379> GET mykey
"this is mykey"
127.0.0.1:6379> STRLEN mykey #获取指定Key的字符长度,等效于C库中strlen函数(integer) 13
2.2 INCR、DECR、DEL、INCRBY、DECRBY
127.0.0.1:6379> SET mykey 10 #设置Key的值为20
OK
127.0.0.1:6379> INCR mykey #该Key的值递增1(integer) 11
127.0.0.1:6379> DECR mykey #该Key的值递减1(integer) 10
127.0.0.1:6379> DEL mykey #删除已有键(integer) 1
127.0.0.1:6379> DECR mykey #对空值执行递减操作,其原值被设定为0,递减后的值为-1(integer) -1
127.0.0.1:6379> DEL mykey
(integer) 1
127.0.0.1:6379> INCR mykey #对空值执行递增操作,其原值被设定为0,递增后的值为1(integer) 1
127.0.0.1:6379> SET mykey hello ##将该键的Value设置后,将不能转换为整型的普通字符串
OK
127.0.0.1:6379> INCR mykey
(error) ERR value is not an integer or out of range
127.0.0.1:6379> SET mykey 10
127.0.0.1:6379> INCRBY mykey 10 #指定增加的整数(integer) 20
127.0.0.1:6379> DECRBY mykey 10 #指定减少的整数(integer) 10
127.0.0.1:6379> GET mykey
"10"
2.3 GETSET、SETEX、TTL、SETNX
127.0.0.1:6379> INCR mycounter #将计数器的值原子性的递增1(integer) 1
127.0.0.1:6379> GETSET mycounter 0 #在设置新值得同时,并返回原有值,这两个操作原子性的同时完成"1"
127.0.0.1:6379> GET mycounter
"0"
127.0.0.1:6379> SETEX mykey 10 "hello world!"#设置指定Key的过期时间为10秒
OK
127.0.0.1:6379> TTL mykey #通过ttl命令查看一下指定Key的剩余存活时间(秒数),0表示已经过期,-1(-2)表示永不过期(integer) 8
127.0.0.1:6379> GET mykey #在该键的存活期内我们仍然可以获取到它的Value"hello world!"
127.0.0.1:6379> TTL mykey #该ttl命令的返回值显示,该Key已经过期(integer) -2
127.0.0.1:6379> GET mykey
(nil)
127.0.0.1:6379> DEL mykey #删除该键,以便于下面的测试验证(integer) 1
127.0.0.1:6379> SETNX mykey "hello"#该键并不存在,因此该命令执行成功,存在则不执行命令(integer) 1
127.0.0.1:6379> SETNX mykey "world"#该键已经存在,因此本次设置没有产生任何效果(integer) 0
127.0.0.1:6379> GET mykey #从结果可以确认,返回的值仍为第一次设置的值"hello"
2.4 SETRANGE、GETRANGE
127.0.0.1:6379> SET mykey "hello world"#设定初始值
OK
127.0.0.1:6379> SETRANGE mykey 6 dd#从第六个字节开始替换2个字节(dd只有2个字节)(integer) 11
127.0.0.1:6379> GET mykey #查看替换后的值"hello ddrld"
127.0.0.1:6379> SETRANGE mykey 20 dd#offset已经超过该Key原有值的长度了,该命令将会在末尾补0(integer) 22
127.0.0.1:6379> GET mykey #查看补0后替换的结果"hello ddrld\x00\x00\x00\x00\x00\x00\x00\x00\x00dd"
127.0.0.1:6379> del mykey #删除该Key(integer) 1
127.0.0.1:6379> SETRANGE mykey 2 dd#替换空值(integer) 4
127.0.0.1:6379> GET mykey #查看替换空值后的结果"\x00\x00dd"
127.0.0.1:6379> SET mykey "0123456789"#设置新值
OK
127.0.0.1:6379> GETRANGE mykey 1 2 #截取该键的Value,从第一个字节开始,到第二个字节结束"12"
127.0.0.1:6379> GETRANGE mykey 1 20 #20已经超过Value的总长度,因此将截取第一个字节后面的所有字节"123456789"
127.0.0.1:6379> DEL cloud
(integer) 1
127.0.0.1:6379> LPUSH cloud a b c d b a #该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入到表头(integer) 6
127.0.0.1:6379> LRANGE cloud 0 -1 #返回列表中指定区间内的元素
1)"a"
2)"b"
3)"d"
4)"c"
5)"b"
6)"a"
127.0.0.1:6379> LREM cloud 2 b #从头部(left)向尾部(right)变量链表,删除2个值等于b的元素,返回值为实际删除的数量(integer) 2
127.0.0.1:6379> LRANGE cloud 0 -1
1)"a"
2)"d"
3)"c"
4)"a"
127.0.0.1:6379> LSET cloud 1 b #将索引值为1的元素值设置为新值b
OK
127.0.0.1:6379> LRANGE cloud 0 -1
1)"a"
2)"b"
3)"c"
4)"a"
127.0.0.1:6379> LINDEX cloud 1 #获取索引值为1的元素值"b"
127.0.0.1:6379> LTRIM cloud 0 2 #仅保留索引值0到2的元素
OK
127.0.0.1:6379> LRANGE cloud 0 -1
1)"a"
2)"b"
3)"c"
2.4 LINSERT
127.0.0.1:6379> DEL could
(integer) 1
127.0.0.1:6379> LPUSH could a b c d e
(integer) 5
127.0.0.1:6379> LRANGE could 0 -1
1)"e"
2)"d"
3)"c"
4)"b"
5)"a"
127.0.0.1:6379> LINSERT could before a 0 #在元素a之前插入新元素0(integer) 6
127.0.0.1:6379> LINSERT could after e 1 #在元素e之后插入新元素1(integer) 7
127.0.0.1:6379> LRANGE could 0 -1
1)"e"
2)"1"
3)"d"
4)"c"
5)"b"
6)"0"
7)"a"
2.5 RPUSH、RPUSHX
127.0.0.1:6379> del key1 key2
(integer) 0
127.0.0.1:6379> RPUSH key1 a b c d e #将值从左往右依次插入到表尾(integer) 5
127.0.0.1:6379> LRANGE key1 0 -1
1)"a"
2)"b"
3)"c"
4)"d"
5)"e"
127.0.0.1:6379> RPUSH key1 f
(integer) 6
127.0.0.1:6379> LRANGE key1 0 -1
1)"a"
2)"b"
3)"c"
4)"d"
5)"e"
6)"f"
127.0.0.1:6379> RPUSHX key2 f #指定键存在时执行,否则不执行(integer) 0
127.0.0.1:6379> KEYS key?
1)"key1"