Redis常用命令列表及使用(持续更新)

Redis简介

redis是一个速度非常快的非关系型数据库(non-relational database),它可以存储键与5种不同类型的值之间映射,可以储存子内存的数据持久化到硬盘,可以使用复制特性扩展读能力,使用分片来扩展写能力。

结构类型

结构存储值

结构的读写能力

STRING

可以使字符串,整数或者是浮点数

可以对整个字符串或者字符串的一部分执行操作;对整数和浮点数执行自增或者自减操作

LIST

一个链表,链表上的每个节点都包含了一个字符串

从链表的两端推入或者弹出元素;根据便宜量对链表进行修剪;读取单个或者多个元素;根据值查找或者移除

SET

包含字符串的无序收集器,并且被包含的每个字符串都是独一无二,各不相同

添加、获取、移除单个元素;检查一个元素是否存在于集合中;计算交集、并集、差集;从集合里面随机获取元素

HASH

包含键值对的无序散列表

添加、获取、移除单个键值对;获取所有键值对

ZSET

字符串成员与浮点数分值之间的有序映射,元素的排列顺序有分值大小决定

添加、获取、删除单个元素;根据分值范围货这成员来获取元素

字符串命令

命令

行为

GET

GET key-name——获取存储在给定建中的值

SET

SET key-name value——设置存储在给定键中的值

DEL

DEL key-name——删除存储在给定键中的值

INCR

INCR key-name——将键存储的值加1

DECR

DECR key-name——将键存储的值减1

INCRBY

INCRBY key-name amount——将键存储的值加上整数amount

DECRBY

DECRBY key-name amount——将键存储的值减去整数amount

INCRBYFLOAT

INCRBYFLOAT key-name amount——将键存储的值加上浮点数amount

APPEND

APPEND key-name value——将value追加到给定键key-name当前值的末尾

GETRANGE

GETRANGE key-name start end——获取有偏移量start至end的所有字符串组成的子串包括start和end在内(end超出字符串结尾部分视为空串)

SETRANGE

SETRANGE key-name offset value——将从start偏移量开始的自传设置为给定值(如果偏移量超过了字符串长度,字符串将自动使用空字节来扩展至所需长度)

GETBIT

GETBIT key-name offset——将字符串看做是二进制位串,并返回位串中偏移量位offset的二进制的值

SETBIT

SETBIT key-name  offset value——将字符串看做二进制串,并将位串中偏移量位offset的二进制位的值设为value

BITCOUNT

BITCOUNT key-name [start end]——统计二进制位串中值位1的二进制位数量,如果给定start,end则统计偏移量范围内的二进制位

BITOP

BITOP operation dest-key key-name [key-name...]——对一个或多个二进制位串执行包括并(AND),或OR,异或XOR、非NOT在内的任意一种按位运算操作,并将结果保存在dest-key键里

示例

127.0.0.1:6379> get mykey
(nil)
127.0.0.1:6379> set mykey 1
OK
127.0.0.1:6379> get mykey
"1"
127.0.0.1:6379> append mykey 2
(integer) 2
127.0.0.1:6379> get mykey
"12"
127.0.0.1:6379> getrange mykey 1 5
"2"
127.0.0.1:6379> setrange mykey 1 3
(integer) 2
127.0.0.1:6379> get mykey
"13"
127.0.0.1:6379> incr mykey
(integer) 14
127.0.0.1:6379> get mykey
"14"
127.0.0.1:6379> decr mykey
(integer) 13
127.0.0.1:6379> incrby mykey 7
(integer) 20
127.0.0.1:6379> decrby mykey 10
(integer) 10
127.0.0.1:6379> incrbyfloat mykey 1.1
"11.1"
127.0.0.1:6379> get mykey
"11.1"
127.0.0.1:6379>
127.0.0.1:6379> get mykey
"11.1"
127.0.0.1:6379> del mykey
(integer) 1
127.0.0.1:6379> get mykey
(nil)
127.0.0.1:6379> setbit mykey 1 1            
(integer) 0
127.0.0.1:6379> setbit mykey 7 1            # 二进制键值是01000001
(integer) 0
127.0.0.1:6379> get mykey
"A"
127.0.0.1:6379> getbit mykey 0
(integer) 0
127.0.0.1:6379> bitcount mykey
(integer) 2
127.0.0.1:6379> bitop not new_mykey mykey    # 做非计算
(integer) 1
127.0.0.1:6379> get new_mykey                #16进制对应10进制是190,二进制是10111110
"\xbe"
127.0.0.1:6379> bitcount new_mykey           #统计二进制位1的个数,共6个
(integer) 6
127.0.0.1:6379> getbit new_mykey 0
(integer) 1

列表

RPUSH

RPUSH key-name value [value ...]——将一个或者多个值推入列表的右端

LPUSH

LPUSH key-name value [value ...]——将一个或者多个值推入列表的左端

RPOP

RPOP key-name——移除并返回列表最右端元素

LPOP

LPOP key-name——移除并返回列表最左端元素

LINDEX

LINDEX key-name offset——返回列表中偏移量为offset的元素

LRANGE

LRANGE key-name start end——返回列表从start偏移量到end偏移量范围内的所有元素,包括start和end的元素

LTRIM

LTRIM key-name start end——对列表进行裁剪,指保留从start偏移量到end范围内的元素,包括start和end的元素

BLPOP

BLPOP key-name [key-name ...] timeout——从第一个非空中弹出最左的元素或者在timeout秒内阻塞并等待可弹出的元素出现

BRPOP

BRPOP key-name [key-name ...] timeout——从第一个非空中弹出最右的元素或者在timeout秒内阻塞并等待可弹出的元素出现

RPOPLPUSH

RPOPLPUSH source-key dest-key——从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表最左端,并返回这个元素 

BRPOPLPUSH

BRPOPLPUSH source-key dest-key——从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表最左端,并返回这个元素,如果source-key为空,那么在timeout秒内阻塞并等待可弹出的元素

示例

127.0.0.1:6379> rpush mylist 1 2 3    #设置列表["1","2","3"]
(integer) 3
127.0.0.1:6379> lpush mylist 0        #左侧加入0 ["0","1","2","3"]
(integer) 4
127.0.0.1:6379> lrange mylist 0 4    #查看列表
1) "0"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> rpop mylist        #右端移除一个元素
"3"
127.0.0.1:6379> ltrim mylist 0 1    #列表修剪保留【0,1】范围内元素
OK
127.0.0.1:6379> lrange mylist 0 4
1) "0"
2) "1"
127.0.0.1:6379> blpop mylist 5        #阻塞的从列表左端弹出一个元素
1) "mylist"
2) "0"
127.0.0.1:6379> lrange mylist 0 5
1) "1"
127.0.0.1:6379> brpoplpush mylist newlist 4        #阻塞的从mylist右端弹出一个元素并推入newlist列表的左端
"1"
127.0.0.1:6379> lrange newlist 0 4
1) "1"
127.0.0.1:6379> lrange mylist 0 4
(empty list or set)

集合

SADD

SADD key-name item [item ...]——将一个或是多个元素添加到集合里,并返回被添加元素当中原本并不存在于集合里的元素数量

SREM

SREM key-name item [item ...]——从集合里移除一个或者多个元素,并返回被移除的元素数量

SISMEMBER

SISMEMBER key-name item——检查元素item是否存在于集合key-name里

SCARD

SCARD key-name——返回集合包含的元素数量

SMEMBERS

SMEMBERS key-name——返回集合包含的所有元素

SRANDMEMBER

SRANDMEMBER key-name [count]——从集合里随机返回一个或者多个元素,当count是正整数时,返回元素不会重复;当count是负数时,命令返回元素可能会重复

SPOP

SPOP key-name——随机的移除集合里一个元素,并返回这个元素

SMOVE

SMOVE source-key dest-key item——如果集合source-key包含元素item,那么从集合source-key里移除元素item,并将元素tiem添加到集合dest-key中;如果item移除成功返回1,否则返回0

SDIFF

SDIFF key-name [key-name ...]——返回哪些存在于第一个集合、但不存在与其他集合中的元素。即:差集运算

SDIFFSTORE

SDIFFSTORE dest-key key-name [key-name ...]——将哪些存在于第一个集合但不存在与其他集合中的元素存放在dest-key键里面。即:将差集存放在新键里

SINTER

SINTER key-name [key-name ...]——返回那些同时存在于所有集合中的元素 即:交集

SINTERSTORE

SINTERSTORE dest-key key-name [key-name ...]——将那些同时存在于所有集合的元素存储到dest-key键里 即:将交集存放在新键里 

SUNION

SUNION key-name [key-name ...]——返回那些至少存在于一个集合中的元素 即并集

SUNIONSTORE

SUNIONSTORE dest-key key-name [key-name ...]——将那些至少存在于一个集合中的元素存储到dest-key键里 即:并集存到新键里

示例

127.0.0.1:6379> sadd myset 1 2 3 3     #设置一个集合元素包含1,2,3
(integer) 3
127.0.0.1:6379> srem myset 1        #删除元素1
(integer) 1
127.0.0.1:6379> sismember myset 2    #检查元素2是否在集合里
(integer) 1
127.0.0.1:6379> scard myset    #集合中元素数量
(integer) 2
127.0.0.1:6379> smembers myset #查看所有元素
1) "2"
2) "3"
127.0.0.1:6379> srandmember myset 3    #从集合里随机不重复获取3元素,但集合元素不足3个时
1) "2"
2) "3"
127.0.0.1:6379> srandmember myset -3   #从集合里随机重复获取3个元素
1) "3"
2) "3"
3) "3"
127.0.0.1:6379> spop myset  #随机移除一个元素,移除的是2
"2"
127.0.0.1:6379> sadd myset 4 5 6   #往集合里添加4,5,6
(integer) 3
127.0.0.1:6379> smove myset newset 3  #将3从集合里移出到newset里
(integer) 1
127.0.0.1:6379> smembers myset
1) "4"
2) "5"
3) "6"
127.0.0.1:6379> smembers newset
1) "3"
127.0.0.1:6379> sadd newset 4
(integer) 1
127.0.0.1:6379> sdiff myset newset  # 求集合差集
1) "5"
2) "6"
127.0.0.1:6379> sinter myset newset # 求集合交集
1) "4"
127.0.0.1:6379> sunion myset newset #求集合并集
1) "3"
2) "4"
3) "5"
4) "6"
127.0.0.1:6379> sunionstore unionset myset newset # 将并集存到新集合unionset中
(integer) 4
127.0.0.1:6379> smembers unionset
1) "3"
2) "4"
3) "5"
4) "6"

散列

HMGET

HMGET key-name key [key ...]——从散列里获取一个或者多个键的值

HMSET

HMSET key-name key value [key value...]——为散列里一个或者多个键设置值

HDEL

HDEL key-name key [key ...]——删除散列里的一个或者多个键值对,返回成功找到并删除的键值对数量

HLEN

HLEN  key-name——返回散列包含的键值对数量

HEXISTS

HEXISTS key-name key——检查给定键里是否存在于散列中

HKEYS

HKEYS key-name——获取散列包含的所有键

HVALS

HVALS key-name——获取散列包含的所有值

HGETALL

HGETALL key-name——获取散列包含的所有键值对

HINCRBY

HINCRBY key-name key increment——将key存储的值加上整数increment

HINCRBYFLOAT

HINCRBYFLOAT key-name key increment——将key存储的值加上浮点数increment

示例

127.0.0.1:6379> hmget myhash a     # 获取不存在hash
1) (nil)
127.0.0.1:6379> hmset myhash a 1 b 2  #设置一个hash
OK
127.0.0.1:6379> hmget myhash a
1) "1"
127.0.0.1:6379> hlen myhash   # hash包含的键值对
(integer) 2
127.0.0.1:6379> hexists myhash a
(integer) 1
127.0.0.1:6379> hkeys myhash
1) "a"
2) "b"
127.0.0.1:6379> hvals myhash
1) "1"
2) "2"
127.0.0.1:6379> hgetall myhash
1) "a"
2) "1"
3) "b"
4) "2"
127.0.0.1:6379> hincrby myhash b 4  # 对myhash中 b键的值加4
(integer) 6
127.0.0.1:6379> hgetall myhash
1) "a"
2) "1"
3) "b"
4) "6"
127.0.0.1:6379> hincrbyfloat myhash a 2.2
"3.2"
127.0.0.1:6379> hgetall myhash
1) "a"
2) "3.2"
3) "b"
4) "6"
127.0.0.1:6379> hdel myhash a
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "b"
2) "6"

有序集合

ZADD

ZADD key-name score member [score member ...]——将带有给定分值的成员添加到有序集合里

ZREM

ZREM key-name member [member ...]——从有序集合里移除给定的成员,并返回被移除成员的数量

ZCARD

ZCARD key-name——返回有序集合包含的成员数量

ZINCRBY

ZINCRBY key-name increment member——将member成员的分值加上increment

ZCOUNT

ZCOUNT key-name min max——返回分值介于min和max之间的成员数量

ZRANK

ZRANK key-name member——返回成员member在有序集合中的排名

ZSCORE

ZSCORE key-name member——返回成员member的分值

ZRANGE

ZRANGE key-name start stop [WITHSCORES]——返回有序集合排名介于start和stop之间的成员,若给定WINTHSCORES选项,则分值一并返回

ZREVRANK

ZREVRANK key-name member——返回有序集合里的成员member的排序,成员按照分值从小到达排序

ZREVRANGE

ZREVRANGE key-name start stop [WITHSCORES]——返回有序集合给定排名范围内的成员,成员按分值大小排列

ZRANGEBYSCORE

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]——返回有序集合中分值结余min和max之间的所有成员

ZREVRANGEBYSCORE

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]——获取有序集合中分值介于min和max之间的所有成员,并按照分值从大到小的顺序来返回它们

ZREMRANGEBYRANK

ZREMRANGEBYRANK key-name start stop——移除有序集合中排名介于start和stop之间的所有成员

ZREMRANGEBYSCORE

ZREMRANGEBYSCORE key-name min max——移除有序集合中分值介于min和max之间的所有成员

ZINTERSTORE

ZINTERSTORE dest-key key-count key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]——对给定的有序集合执行类似于集合的交集运算

ZUNIONSTORE

ZUNIONSTORE dest-key key-count key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]——对给定的有序集合执行类似于集合的并运算

示例

127.0.0.1:6379> zadd myzset 1 a 2 b 3 c # 设置一个zset有序集合a:1,b:2,c:3
(integer) 3
127.0.0.1:6379> zcard myzset
(integer) 3
127.0.0.1:6379> zincrby myzset 1 c   #将c+1 之后c:4
"4"
127.0.0.1:6379> zcount myzset 1 3
(integer) 2
127.0.0.1:6379> zrange myzset 0 3
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> zrange myzset 0 3 withscores
1) "a"
2) "1"
3) "b"
4) "2"
5) "c"
6) "4"
127.0.0.1:6379> zadd myzset1 3 c 4 d     #新键另一个zset,c:3,d:4
(integer) 2
127.0.0.1:6379>  zunionstore newzset 2 myzset myzset1 weights 1 1 aggregate sum  #将两个集合按照并集 权重是1,相同键进行相加合并
(integer) 4
127.0.0.1:6379> zrange newzset 0 -1 withscores
1) "a"
2) "1"
3) "b"
4) "2"
5) "d"
6) "4"
7) "c"
8) "7"

发布与订阅

SUBSCRIBE

SUBSCRIBE channel [channel ...]——订阅戈丁的一个或多个频道 

UNSUBSCRIBE

UNSUBSCRIBE [channel [channel ....]] ——退订给定的一个或多个频道,如果没有给定频道,则退订所有频道

PUBLISH

PUBLISH channel message——向给定频道发消息

PSUBSCRIBE

PSUBSCRIBE pattern [pattern ...]——订阅与给定模式相匹配的所有频道

PUNSUBSCRIBE

PUNSUBSCRIBE [pattern [pattern ...]]——对顶戈丁的模式频道,若没有给定模式,则退订所有频道

排序

SORT

SORT source-key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE dest-key]——根据给定的选项,对输入列表、集合或者有序集合进行排序

示例详见: http://doc.redisfans.com/key/sort.html

猜你喜欢

转载自blog.csdn.net/weixin_41579863/article/details/106108516