最近在学习非关系型数据库redis,来总结一下redis常用的指令吧,比较简单,就当做自己敲打一遍加深一下印象吧。
redis支持5种存储类型,今天先介绍着5种类型的基本操作吧
一,字符串
字符串可以存储以下3中类型的值
1、字节串
2、整数
3、浮点数
(1)自增和自减命令
INCR/DECR:INCR/DECR KEY-NAME ---将键存储的值增加/减少1
INCRBY/DECRYBY INCRBY/DECRBY KEY-NAME amount--- 将键存储的值增加/减少amount
INCRBYFLOAT INCRBYFLOAT KEY-NAME amount ---将键存储的值加上浮点数amount(2.6及以上版本使用)
(2)字符串字串和二进制位命令
1)APPEND APPEND KEY-NAME VALUE ---将值value追加到给定键KEY-NAME当前存储的值的末尾
2)GETRANGE GETRANGE KEY-NAME start end ---获取一个由偏移量start至偏移量end范围内的所有字符组成的字串,包括start和end在内
3)SETRANGE SETRANGE KEY-NAME offset value---将start偏移量开始的字串设置成给定值
4)GETBIT GETBIT KEY-NAME offset--- 将字节串看作是二进制位串,并返回位串中偏移量位offset的二进制位的值
5)SETBIT SETBIT KEY-NAME offset value ---将字节串看成是二进制的位串,并将位串中偏移量为offset的二进制位的值设置成value
6)BITCOUNT BITCOUNT KEY-VALUE [start end]---统计二进制位串里面值为1的二进制位的数量,如果给定了可选的start和end偏移量 那么只对偏移量指定范围内的二进制进行统计
7)BITOP BITOP operation dest-key key-name [key-name...]---对一个或多个二进制位串执行包括并(and)、或(or)、异或(XOR)、非(NOT)在内的任意一种按位运算的操作,并将计算得出的结果保存在dest-key键里面
二,列表
1)RPUSH RPUSH KEY-NAME value [value ...]---将一个或多个值推入列表的右端
2)LPUSH LPUSH KEY-NAME value [value ...]---将一个或多个值推入列表的左端
3)RPOP RPOP KEY-NAME ---移除并返回列表最右端的元素
4)LPOP LPOP KEY-NAME ---移除并返回列表最左端的元素
5)LINDEX LINDEX KEY-NAME offset ---返回列表中偏移量为offset元素
6)LRANGE LRANGE KEY-NAME start end ---返回列表从start到end偏移量范围内的所有元素,start和end位置的元素也会返回
7)LTRIM LTRIM KEY-NAME start end ---对列表进行修建,只保留从start到end偏移量范围内的元素,其中start和end元素会保留
阻塞式列表弹出命令以及在列表之间移动元素的命令
1)BLPOP BLPOP KEY-NAME [key-name ...] timeout ---从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
2)BRPOP BRPOP KEY-NAME [key-name ...] timeout ---从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现
3)RPOPLPUSH RPOPLPUSH source-key dest-key ---从source-key列表弹出位于最右端的元素,然后将这个元素推入到dest-key列表的最左端,并向用户返回这个元素
4)BRPOPLPUSH BRPOPLPUSH source-key dest-key timeout ---从source-key列表中弹出最右端元素,然后将这个元素推入到dest-key列表的最左端,并向用户返回这个元素,如果source-key为null,那么在timeout秒之内阻塞并等待可弹出的元素出现
三,集合
1)SADD SADDN KEY-NAME item [item ...] --- 将一个或多个元素添加到集合里面,并返回被添加元素当中原本不存在于集合里面的元素数量
2)SREM SREM key-name item [item ...] ---从集合里面移除一个或多个元素,并返回被移除元素数量
3)SISMEMBER SISMEMBER key-name item ---检查元素item是否存在于集合key-name里面
4)SCARD SCARD key-name ---返回集合包含元素的数量
5)SMEMBERS SMEMBERS key-name 返回集合包含的所有元素
6)SRANDMEMBER SRANDMEMBER key-name [count] ---从集合里面随机地返回一个或多个元素,当count为正数时,命令返回的随机元素不会重复,当count为负数时,命令返回随机元素可能会出现重复
7)SPOP SPOP key-name---随机地移除集合中的一个元素,并返回被移除的元素
8)SMOVE SMOVE source-key dest-key item ---如果集合source-key包含元素item,那么从集合source-key里面移除元素item,并将元素添加到集合dest-key中,如果item被成功移除,则返回1,否则返回0
用于组合和处理多个集合的redis命令
1)sdiff sdiff key-name [key-name ...] ---返回那些存在于第一个集合,但不存在于其他集合中的元素(数学上的差集运算)
2)sdiffstore sdiffstore dest-key key-name [key-name ...]---将那些存在于第一个集合但不存在于其他集合的元素存储到dest-key里面
3)sinter sinter key-name [key-name...] ---发牛那些同时存在于所有集合中的元素(数学中的交集运算)
4)sinterstore sinterstore dest-key key-name [key-name ...]---将那些同时存在于所有集合的元素存储到dest-key键里面
6)sunion sunion key-name [key-name ...]---返回那些至少存在于一个集合中的元素(数学中的并集)
7)sunionstore sunionstore dest-key key-name [key-name ...]---返回那些至少存在于一个集合中的元素,并存储到dest-key键里面
四、散列(可以将这种数据聚集看作关系型数据库的行)
用于添加和删除键值对的散列的操作
1)hmget hmget key-name key [key ....]---从散列里面获取一个或多个键得值
2)hmset key-name key value [key value ...]---为散列里面得一个或多个键设置值
3)hdel hdel key-name key [key ...] ---删除散列里面得一个或多个键值对,返回成功找到并删除键值对得数量
3)hlen hlen key-name ---返回散列包含得键值对得数量
redis散列的高级特性
1)hexists hexists key-name key ---检查给定键是否存在于散列中
2)hkeys hkeys key-name ---获取散列包含的所有键
3)hvals hvals key-name ---获取散列包含的所有值
4)hgetall hgetall key-name---获取散列包含的所有键值对
5)hincrby hincrby key-name key increment ---将键key存储的值加上证书increment
五,有序集合(member成员,score分值)
1)zadd zadd key-name score member [score member ...]---将带有给定分值的成员添加到有序集合里面
2)zrem zrem key-name member [member ...]---从有序集合里面移除给定的成员,并返回被移除成员的数量
3)zcard zcard key-name ---返回有序集合包含的成员数量
4)zincrby zincrby key-name increment member---将member对应的分值加上increment
5)zcount zcount key-name min max ---返回分值介于min和max之间的成员数量
6)zrank zrank key-name member--- 返回成员member在有序集合中的排名
7)zscore zscore key-name member返回成员member的分值
8)zrange zrange key-name start stop [withscores] ---返回有序集合中排名介于start和stop之间的成员,如果给定了可选的withscores选项,那么命令会将成员的分值也一并返回
有序集合的范围型数据获取命令和范围型数据删除命令,以及并集命令和交集命令
1)zrevrank zrevrank key-name member ---返回有序集合里成员member的排名,成员按照分值从大到小排列
2)zrevrange zrevrange key-name start stop [withscores]---返回有序集合给定排名范围内的成员,成员按照分值从大到小排列
3)zrangebyscore zrangebyscore key-name min max [withscores] [limit offset count] ---返回有序集合中,分值介于min和max之间的所有成员
4)zrevrangebyscore zrevrangebyscore key-name max min [withscore] [limit offset couunt]---返回有序集合中分值介于min和max之间的所有成员,并按照分值从大到小的顺序来返回
5)zremrangebyrank zremrangebyrank key-name start stop ---移除有序集合中排名介于start和stop之间的所有成员
6)zremrangebyscore zremrangebyscore key-name min max---移除有序集合中分值介于min和max之间的所有成员
7)zinterstore zinterstore dest-key key-count key [key ...] [WEIGHTS WEIGHT [WEIGHT ...]] [AGGREGATE SUM\min\max]---对给定的有序集合执行类似于集合的交集运算
8)zunionstore zunionstore dest-key key-count key [key ...][WEIGHTS weight[weight...]] [aggregate sum\min\max]---对给定的有序集合执行类似于集合的并集运算