key都是字符串
value常用数据类型
1. string 字符串
以二进制方式存储,不需要担心乱码导致的数据变化,可以存任何数据,如图片,序列化的对象,一个字符串最大容量512M
SET key value | 添加键值对 |
GET key | 查询指定key的值 |
APPEND key value | 将给定的value追加到原值的末尾 |
STRLEN key | 获取值的长度 |
SETNX key value | 只有在 key 不存在时设置 key 的值 |
INCR key | 指定key的值自增1,只对数字有效 |
DECR key | 指定key的值自减1,只对数字有效 |
INCRBY key num | 自增num |
DECRBY key num | 自减num |
MSET key1 value1 key2 value2… | 同时设置多个key-value对 |
MGET key1 key2 | 同时获取一个或多个value |
MSETNX key1 value1 key2 value2 | 当key不存在时,设置多个key-value对 |
GETRANGE key起始索引 结束索引 | 获取指定范围的值,都是闭区间 |
SETRANGE key起始索引 value | 从起始位置开始覆写指定的值 |
GETSET key value | 以新换旧,同时获取旧值 |
SETEX key 过期时间 value | 设置键值的同时,设置过期时间,单位秒 |
2. list 可以重复集合
在Java中list 一般是单向链表,如常见的Arraylist,只能从一侧插入。
在Redis中,list是双向链表。两端都可以进出
LPUSH/RPUSH key value1 value2… | 从左边/右边压入一个或多个值 头尾效率高,中间效率低 |
LPOP/RPOP key | 从左边/右边弹出一个值 值在键在,值光键亡 弹出=返回+删除 |
LRANGE key start stop | 查看指定区间的元素 正着数:0,1,2,3,... 倒着数:-1,-2,-3,... |
LINDEX key index | 按照索引下标获取元素(从左到右) |
LLEN key | 获取列表长度 |
LINSERT key BEFORE|AFTER value newvalue | 在指定value的前后插入newvalue |
LREM key n value | 从左边删除n个value |
LSET key index value | 把指定索引位置的元素替换为另一个值 |
LTRIM key start stop | 仅保留指定区间的数据 |
RPOPLPUSH list1 list2 | 从list1右边弹出一个值,左侧压入到list2 |
3. set 不可重复集合
set是无序的,且是不可重复的
SADD key member [member ...] | 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。 |
SMEMBERS key | 取出该集合的所有值 |
SISMEMBER key value | 判断集合<key>是否为含有该<value>值,有返回1,没有返回0 |
SCARD key | 返回集合中元素的数量 |
SREM key member [member ...] | 从集合中删除元素 |
SPOP key [count] | 从集合中随机弹出count个数量的元素,count不指定就弹出1个 |
SRANDMEMBER key [count] | 从集合中随机返回count个数量的元素,count不指定就返回1个 |
SINTER key [key ...] | 将指定的集合进行“交集”操作 |
SINTERSTORE dest key [key ...] | 取交集,另存为一个set |
SUNION key [key ...] | 将指定的集合执行“并集”操作 |
SUNIONSTORE dest key [key ...] | 取并集,另存为set |
SDIFF key [key ...] | 将指定的集合执行“差集”操作 |
SDIFFSTORE dest key [key ...] | 取差集,另存为set |
4. hash 类似map<String,String>,不支持进一步的类型嵌套
HSET key field value | 为key中的field赋值value |
HMSET key field value [field value ...] | 为指定key批量设置field-value |
HSETNX key field value | 当指定key的field不存在时,设置其value |
HGETALL key | 获取指定key的所有信息(field和value) |
HKEYS key | 获取指定key的所有field |
HVALS key | 获取指定key的所有value |
HLEN key | 指定key的field个数 |
HGET key field | 从key中根据field取出value |
HMGET key field [field ...] | 为指定key获取多个filed的值 |
HEXISTS key field | 指定key是否有field |
HINCRBY key field increment | 为指定key的field加上增量increment |
5. zset 带分数的set,可以利用分数排序
ZADD key [score member ...] | 添加 |
ZSCORE key member | 返回指定值的分数 |
ZRANGE key start stop [WITHSCORES] | 返回指定区间的值,可选择是否一起返回scores |
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] | 在分数的指定区间内返回数据,从小到大排列 |
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] | 在分数的指定区间内返回数据,从大到小排列 |
ZCARD key | 返回集合中所有的元素的数量 |
ZCOUNT key min max | 统计分数区间内的元素个数 |
ZREM key member | 删除该集合下,指定值的元素 |
ZRANK key member | 返回该值在集合中的排名,从0开始 |
ZINCRBY key increment member | 为元素的score加上增量 |