redis数据类型 :
String(字符串)
string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
redis常用的操作命令 :
01 set :用于给指定的key设置value,支持设置已存在的key
127.0.0.1:6379> set city chengdu
OK
127.0.0.1:6379> get city
"chengdu"
02 get:用于取指定key的value
127.0.0.1:6379> set city chengdu
OK
127.0.0.1:6379> get city
"chengdu"
03 setnx:用于给指定的key设置value,如果key已经存在则返回0。nx代表:not exist
127.0.0.1:6379> setnx province sichuan
(integer) 1
127.0.0.1:6379> get province
"sichuan"
04 setex:用于给指定的key设置value,并且需要指定该key的有效时间。 10秒后则返回为空
127.0.0.1:6379> setex province 5 beijing
OK
127.0.0.1:6379> get province
"beijing"
127.0.0.1:6379> get province
(nil)
05 setrange:给指定的key的值重新覆盖内容,从4指定位置,替换内容为ming,最终结果为xiaoming
127.0.0.1:6379> set name liusir
OK
127.0.0.1:6379> get name
"liusir"
127.0.0.1:6379> setrange name 3 xiansheng
(integer) 11
127.0.0.1:6379> get name
"liuxiansheng"
127.0.0.1:6379>
6 mset:批量设置key对应的value值
127.0.0.1:6379> mset xingming xiaohong num 43 score 98 level A
OK
127.0.0.1:6379> mget xingming num score level
1) "xiaohong"
2) "43"
3) "98"
4) "A"
07 msetnx:批量设置key对应的value值,如果key已存在则返回0。
127.0.0.1:6379> msetnx city shanghai country longquan
(integer) 0
127.0.0.1:6379> get country
(nil)
127.0.0.1:6379> msetnx country longquan street changhong
(integer) 1
127.0.0.1:6379> mget country street
1) "longquan"
2) "changhong"
08 getset:给指定key设置新值,并且返回之前原始数据。
127.0.0.1:6379> get street
"damian"
127.0.0.1:6379> getset street linyin
"damian"
09 getrange:返回一个字符串的子字符串,相当于字符串截取,下标0是起始位置,下标3是结尾位置
127.0.0.1:6379> getrange street 0 3
"liny"
127.0.0.1:6379> get street
"linyin"
10 mget:批量获取key对应的value,按顺序展示
127.0.0.1:6379> mset xingming xiaohong num 43 score 98 level A
OK
127.0.0.1:6379> mget xingming num score level
1) "xiaohong"
2) "43"
3) "98"
4) "A"
11 incr:将指定key中存储的数字值增一,必须是数字类型,否则会返回错误信息
111.231.51.81:6379> get age
"10"
111.231.51.81:6379> incr age
(integer) 11
111.231.51.81:6379> incr age
(integer) 12
11 incrby:将指定key中存储的数字指定增加多少,以下指定增长10
111.231.51.81:6379> get age
"12"
111.231.51.81:6379> incrby age 10
(integer) 22
12 decr:将指定key中存储的数字值减一,必须是数字类型,否则会返回错误信息
111.231.51.81:6379> decr age
(integer) 21
111.231.51.81:6379> decr age
(integer) 20
13 decrby:将指定key中存储的数字指定减少多少,以下指定减少10
111.231.51.81:6379> get age
"20"
111.231.51.81:6379> decrby age 10
(integer) 10
14 append:给指定的key中的值追加字符串
111.231.51.81:6379> get name
"lisi"
111.231.51.81:6379> append name wu
(integer) 6
111.231.51.81:6379> get name
"lisiwu"
15 strlen:返回指定key中value的长度
111.231.51.81:6379> get name
"lisiwu"
111.231.51.81:6379> strlen name
(integer) 6
哈希值设置 :
1. redis按照hash进行存值
hmset key field1 value1 field2 value2 ...
2. redis得到hash的key中某一个field的值
hmget key field
注意:其中field表示你想要查询的field的值,其中field可以有多个值。
3. redis返回哈希表key的所有field值和所有的value值
hgetall key
注意:其中奇数为filed值,偶数为对应的value值。
4. redis返回哈希表key的所有filed的值
hkeys key
5. redis返回哈希表key的所有的value值
hvals key
6. redis删除哈希表key的某一个field值和对应的value值
hdel key
7. redis设置key的过期时间
expire key time | expireat key time
注意:其中expire key time中的time表示的是秒数,expireat key time中的time表示的是unixtime的标准秒数
8. redis查看key的到期时间或剩余的剩余的生存时间
ttl key
9. redis删除key的过期时间
persist key
List列表 :
列表 list——基本命令
lpush
语法:lpush key value [value„]
作用:将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左 到右的顺序依次插入到表头
返回值:数字,新列表的长度
rpush
语法:rpush key value [value„]
作用:将一个或多个值 value 插入到列表 key 的表尾(最右边),各个 value 值按从左到右 的顺序依次插入到表尾
返回值:数字,新列表的长度
lrange
语法:lrange key start stop
作用:获取列表 key 中指定区间内的元素,0 表示列表的第一个元素,以 1 表示列表的第二个元素;
start , stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒 数第二个元素,以此类推。
start ,stop 超出列表的范围不会出现错误。
返回值:指定区间的列表
lindex
语法:lindex key index
作用:获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。
0 表示列表的第一个 元素,以 1 表示列表的第二个元素;
start , stop 是列表的下标值,也可以负数的下标, -1 表示列 表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
返回值:指定下标的元素;index 不在列表范围,返回 nil
llen
语法:llen key
作用:获取列表 key 的长度 返回值:数值,列表的长度; key 不存在返回 0
lrem
语法:lrem key count value
作用:根据参数count的值,移除列表中与参数value相等的元素,
count>0 ,从列表的左侧向右开始移 除;
count<0从列表的尾部开始移除;
count=0 移除表中所有与value相等的值。
返回值:数值,移除的元素个数
lset
语法:lset key index value
作用:将列表 key 下标为 index 的元素的值设置为 value。
返回值:设置成功返回 ok ; key 不存在或者 index 超出范围返回错误信
linsert
语法:linsert key BEFORE(前)|AFTER(后) pivot value
作用:
将值value插入到列表key当中位于值pivot之前或之后的位置。
key不存在,pivot不在列表中, 不执行任何操作。
返回值:命令执行成功,返回新列表的长度。没有找到 pivot 返回 -1, key 不存在返回 0。
RPOP key
移除列表的最后一个元素,返回值为移除的元素。
RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
LPOP key
移除列表的第一个元素,返回值为移除的元素。
set集合:
sadd
语法:sadd key member [member…]
作用:
将一个或多个 member 元素加入到集合 key 当中,
已经存在于集合的 member 元素将被忽略, 不会再加入。
返回值:加入到集合的新元素的个数。不包括被忽略的元素。
smembers
语法:smembers key
作用:获取集合 key 中的所有成员元素,不存在的 key 视为空集合
sismember
语法:sismember key member
作用:判断 member 元素是否是集合 key 的成员
返回值:member 是集合成员返回 1,其他返回 0
scard
语法:scard key
作用:获取集合里面的元素个数
返回值:数字,key 的元素个数。 其他情况返回 0
srem
语法:srem key member [member…]
作用:删除集合 key 中的一个或多个 member 元素,不存在的元素被忽略。
返回值:数字,成功删除的元素个数,不包括被忽略的元素。
srandmember
语法:srandmember key [count]
作用:
只提供 key,随机返回集合中一个元素,元素不删除,依然在集合中;
提供了 count时,count 正数, 返回包含 count 个数元素的集合, 集合元素各不相同。
count 是负数,返回一个 count 绝对 值的长度的集合, 集合中元素可能会重复多次。
返回值:一个元素;多个元素的集合
spop
语法:spop key [count]
作用:随机从集合中删除一个元素, count 是删除的元素个数。
返回值:被删除的元素,key 不存在或空集合返回 nil
zset有序集合 :
zadd:往集合中添加元素
127.0.0.1:6379> zadd ball 1 basketball
(integer) 1
127.0.0.1:6379> zadd ball 2 football
(integer) 1
zrange:查看集合中的元素,后面加上withscores即可显示当前元素所对应的顺序
127.0.0.1:6379> zrange ball 0 -1
1) "basketball"
2) "football"
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
zrem:删除集合中指定的元素
127.0.0.1:6379> zrange ball 0 -1
1) "basketball"
2) "football"
3) "pingpang"
127.0.0.1:6379> zrem ball pingpang
(integer) 1
127.0.0.1:6379> zrange ball 0 -1
1) "basketball"
2) "football"
zincrby:指定增加元素所对应的顺序,之前noe对应的顺序是1,然后使用zincrby新增了3
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "5"
127.0.0.1:6379> zincrby ball 3 pingpang
"8"
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
zrank:返回指定元素,在集合中的所对应的索引。 索引是从0开始的,noe对应的索引是0,four对应的是3。按从小到大的顺序
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrank ball basketball
(integer) 0
zrevrank:返回指定元素,在集合中的所对应的索引。按从大到小的顺序,因为是按从大到小的排序,所以four索引变成了0,而noe的索引是3
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrevrank ball football
(integer) 1
127.0.0.1:6379> zrevrank ball pingpang
(integer) 0
127.0.0.1:6379> zrevrank ball basketball
(integer) 2
zrevrange:按集合顺序,从大到小进行显示
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrevrange ball 0 -1 withscores
1) "pingpang"
2) "8"
3) "football"
4) "2"
5) "basketball"
6) "1"
zrangebyscore:显示指定顺序范围内的元素,按元素顺序
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrangebyscore ball 0 2 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
zcount:返回指定顺序范围内元素的个数,按元素顺序
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zcount ball 0 20
(integer) 3
127.0.0.1:6379> zcount ball 0 5
(integer) 2
zcard:返回集合中元素数量
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zcard ball
(integer) 3
zremrangebyrank:删除指定索引范围内的元素,索引从0开始,0到1,相对应的元素是noe、tow。按索引
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zremrangebyrank ball 0 1
(integer) 2
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "pingpang"
2) "8"
zremrangebyscore:删除指定顺序范围内的元素,按元素所对应的顺序
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "soccoer"
2) "1"
3) "football"
4) "2"
5) "basketball"
6) "5"
7) "pingpang"
8) "8"
9) "score"
10) "44"
127.0.0.1:6379> zremrangebyscore ball 0 4
(integer) 2
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "5"
3) "pingpang"
4) "8"
5) "score"
6) "44"
以上是redis五种数据类型的