INCRBY key increment:key值增加指定的整数DECRBY key decrement:key值减少指定的整数
5、 RPUSH/RPUSHX/RPOP/RPOPLPUSH
1、 HSET/HGET/HDEL/HEXISTS/HLEN/HSETNX
3、 HGETALL/ HKEYS/HVALS/ HMGET/ HMSET
1、 SADD/SMEMBERS/SCARD/ SISMEMBER
2、 SPOP/SREM/SRANDMEMBER/SMOVE
1、ZADD/ZCARD/ZCOUNT/ZREM/ZINCRBY/ZSCORE/ZRANGE/ZRANK
2、ZRANGEBYSCORE/ZREMRANGEBYRANK/ZREMRANGEBYSCORE
3、 ZREVRANGE/ ZREVRANGEBYSCORE/ ZREVRANK
一、String数据类型
概述:String 是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等
1、SET/GET/APPEND/STRLEN
(1) APPEND
APPEND key value:追加键值,并返回追加后的长度(若键不存在,则相当于创建)
redis 127.0.0.1:6379> exists xyw #判断该键是否存在,存在返回1,否则返回0。
(integer) 0
redis 127.0.0.1:6379> append xyw "hello" #该键并不存在,因此append命令返回当前Value的长度。
(integer) 5
redis 127.0.0.1:6379> append xyw " world" #该键已经存在,因此返回追加后Value的长度。
(integer) 11
redis 127 .0.0.1:6379> get xyw #通过get命令获取该键,以判断append的结果。
"hello world"
(2) SET/STRLEN
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]:设置键-值对
STRLEN key:统计指定key的字符长度
redis 127 .0.0.1:6379> set xyw "this is a test" #通过set命令为键设置新值,并覆盖原有值。
OK
redis 127 .0.0.1:6379> get xyw
"this is a test"
redis 127 .0.0.1:6379> strlen xyw #获取指定Key的字符长度。
(integer) 14
2、 INCR/ DECR/INCRBY/DECRBY
(1)INCR/ DECR
INCR key:key值递增加1(key值必须为整数)
DECR key:key值递增减1(key值必须为整数)
127.0.0.1:6379> set xyw 20 #设置Key的值为20
OK
127.0.0.1:6379> get xyw
"20"
127.0.0.1:6379> incr xyw #该Key的值递增1
(integer) 21
127.0.0.1:6379> decr xyw #该Key的值递减1
(integer) 20
127.0.0.1:6379> del xyw #删除已有键。
(integer) 1
127.0.0.1:6379> get xyw
(nil)
127.0.0.1:6379> decr xyw #对空值执行递减操作,其原值被设定为0,递减后的值为-1
(integer) -1
redis 127.0.0.1:6379> del xyw
(integer) 1
redis 127.0.0.1:6379> incr xyw #对空值执行递增操作,其原值被设定为0,递增后的值为1
(integer) 1
127.0.0.1:6379> set xyw sweetsensetion #将该键的Value设置为不能转换为整型的普通字符串。
OK
127.0.0.1:6379> get xyw
"sweetsensetion"
127.0.0.1:6379> incr xyw
(error) ERR value is not an integer or out of range
127.0.0.1:6379> decr xyw
(error) ERR value is not an integer or out of range
(2) INCRBY/DECRBY
INCRBY key increment:key值增加指定的整数
DECRBY key decrement:key值减少指定的整数
127.0.0.1:6379> set xyw 10
OK
127.0.0.1:6379> get xyw
"10"
127.0.0.1:6379> decrby xyw 5 #减少指定的整数
(integer) 5
127.0.0.1:6379>
127.0.0.1:6379> incrby xyw 3 #增加指定的整数
(integer) 8
3、GETSET
GETSET key value:获取key值并返回,同时给key设置新值
127.0.0.1:6379> incr mycounter #将计数器的值原子性的递增1
(integer) 1
127.0.0.1:6379> get mycounter
"1"
127.0.0.1:6379> getset mycounter "sweet sensetion" #在获取计数器原有值的同时,并将其设置为新值,这两个操作原子性的同时完成。
"1" #get的原键值
127.0.0.1:6379> get mycounter #查看设置后的结果。
"sweet sensetion"
4、 SETEX
setex key seconds value:设置指定key的过期时间为seconds
#seconds:过期时间
redis 127.0.0.1:6379> setex mykey 10 "hello" #设置指定Key的过期时间为10秒。
OK
redis 127.0.0.1:6379> ttl mykey #通过ttl命令查看一下指定Key的剩余存活时间(秒数),-2表示已经过期,-1表示永不过期。
(integer) 4 #表示还有4秒过期
redis 127.0.0.1:6379> get mykey #在该键的存活期内我们仍然可以获取到它的Value。
"hello"
redis 127.0.0.1:6379> ttl mykey #该ttl命令的返回值显示,该Key已经过期。
(integer) -2
redis 127.0.0.1:6379> get mykey #获取已过期的Key将返回nil。
(nil)
127.0.0.1:6379> set mykey "hello"
OK
127.0.0.1:6379> ttl mykey
(integer) -1 #-1永不过期
5、SETNX
SETNX key value:不存在键的话执行set操作,存在的话不执行
#若键不存在即会创建新键,若键已存在则不执行
redis 127.0.0.1:6379> del mykey #删除该键,以便于下面的测试验证。
(integer) 1
redis 127.0.0.1:6379> setnx mykey "hello" #该键并不存在,因此setnx命令执行成功。
(integer) 1
redis 127.0.0.1:6379> setnx mykey "world" #该键己经存在,因此本次设置没有产生任何效果。
(integer) 0
redis 127.0.0.1:6379> get mykey #从结果可以看出,返回的值仍为第一次设置的值。
"hello"
6、MSET/MGET/MSETNX
MSET key value [key value ...]:批量设置键-值对
MGET key [key ...]:批量获取键值对
MSETNX key value [key value ...]:批量设置键-值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0
redis 127.0.0.1:6379> mset key1 "hello" key2 "worl