Redis常用命令
官方文档:http://www.redis.cn/commands.html
1.通用命令
- exists:判断key是否存在
- del:删除key
- type:判断key类型
- ttl:查看key存活时间
2.String类型命令
- set/get:设置和获取key-value
- mset/mget:批量设置和获取多个key的值
- incr:对key对应的值进行加1操作,并返回新的值
- incrby:将key对应的数字加increment。如果key不存在,操作之前,key就会被置为0
- setex:设置key对应字符串value,并且设置key在给定的seconds时间之后过期,原子操作
- setnx:将key设置值为value,如果key不存在等同set命令。当key存在时什么也不做,是set if not exists的简写。
- getset:设置key的值,并返回key旧的值
- 注意:value的长度不能超过512MB
3.List类型命令
双向链表,插入删除时间复杂度O(1)快,查找为O(n)慢
- lpush:将一个或多个值插入到列表头部
- lpop:移除并获取列表第一个元素
- rpush:将一个或多个值插入到列表尾部
- rpop:移除并获取列表最后一个元素
- llen:获取列表长度
- lindex:通过索引获取列表中的元素
- lrange:获取key对应的list的指定下标范围的元素,其中0表示列表的第一个元素,1表示列表的第二个元素,-1表示获取所有元素
- brpop:移除并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
- lrem:移除元素,可以指定移除个数
4.Hash类型命令
是一个string类型的field和value的映射表,hash特别适合用于存储对象
- hset/hget:设置/获取key指定的哈希集中指定字段的值
- hmset/hmget:批量设置/批量获取key指定的哈希集中指定字段的值
- hgetall:返回key指定的哈希集中所有的字段和值
- hdel:从key指定的哈希集中移除指定的域
- hexists:返回hash里面field是否存在
- hincrby:增加key指定的哈希集中指定字段的数值,如果是-1则是递减
5.Set类型命令
将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。Set是通过哈希表实现的
-
sadd:添加一个或多个指定的member元素到集合的key中,指定的一个或者多个元素的member如果已经在集合key中存在则忽略
-
scard:返回集合存储的key的基数(集合元素的数量)
-
smembers:返回key集合所有的元素
-
sismember:返回成员member是否是存储的集合key的成员
-
srem:在key集合中移除指定的元素,如果指定的元素不是key集合中的元素则忽略
-
sdiff:返回的集合元素是第一个key的集合与后面所有key的集合的差集
-
sinter:返回指定所有的集合的成员的交集
-
sunion:返回指定的多个集合中的并集
6.SortedSet类型命令
用于将一个或多个成员元素及其分数值加入到有序集当中,如果某个成员已经是有序集的成员,那么更新这个成员的分数值,分数值可以是整数值或双精度浮点数;有序集合可以看做是在Set集合的基础上为集合中的每个元素维护了一个顺序值:score,它允许集合中的元素可以按照score进行排序;使用HashMap+跳表skipList保证数据存储和有序
- zadd:向有序集合添加一个或多个成员,或者更新已存在成员的分数
- zrange:通过索引区间返回有序集合指定区间的成员,成员的位置按分数值递增(从小到大)来排序
- zrevrange:通过索引区间返回有序集合指定区间的成员,成员的位置按分数值递减(从大到小)来排序
- zrank:返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列
- zrevrank:返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
- zcard:获取有序集合的成员数
- zcount:计算在有序集合中指定区间分数的成员数
- zincrby:有序集合中对指定成员的分数加上增量increment
- zrem:移除有序集合中的一个或多个成员
- zscore:返回有序集中,成员的分数值