redis操作
Redis支持六种数据类型string/hash/list/set/zset(sorted set)/hyperloglog
在java中通常以对象为主,主要需要Redis中数据类型与java对象之间进行转换。
-
获取符合规则的键名列表
-
KEYS pattern
符号 含义 ? 匹配一个字符 * 匹配任意个(包括0)个字符 [] 匹配括号间的任一字符,可以使用“-”符号表是一个范围,如a[b-d]可以匹配ab、ac、ad \x 匹配字符x,用于转义符号。如果要匹配?,就需要使用? redis > SET bar 1
OK
redis > **KEYS ***
- “bar”
注意:KEYS命令需要遍历redis中的所有键,当键的数据较多就会影响性能,不建议在生产环境使用
提示 Redis不区分大小写
-
判断一个键是否存在
EXISTS key
如果存在返回整数类型1,否则返回0
-
删除键
DEL key [key…]
可以删除一个或多个键,返回的是删除键的个数
-
获取键值的数据类型
TYPE key
获得键值的返回类型,返回值可能是string、hash、list、set、zset
-
-
字符串类型
-
赋值与取值
SET key value
GET key
如果获取的键值不存在,返回空结果
-
递增数字
INCR num
让当前的键值递增,返回递增之后的键值结果
-
增加指定的整数
INCRBY key increment
-
减少指定的整数
DECR key
DECRBY key increment
-
增加指定的浮点数
INCRBYFLOAT key increment
-
向尾部追加值
APPEND key value
-
获取字符串长度
STRLEN key
-
同时获得/设置多个键值
MGET key [key…]
MSET key value [key value…]
-
位操作
GETBIT key offset
SETBIT key offset value
BITCOUNT key [start] [end]
BITOP operation destkey key [key…]
一个字节由8个二进制位生成
通过GETBIT 可以获得key的第offset位的二进制位的值,如果超过了二进制位长度,返回0
SETBIT 可以设置二进制位的值,超过二进制位长度,会将中间的位数设置为0
BITCOUNT key [start] [end] 用来获取指定位置[start,end]的字符的二进制位1的个数,不指定start、end默认为访问全部
BITOP可以对多个字符串类键进行位运算,并将结果存储在destkey参数指定的键中。
BITOP命令支持的运算操作有AND、OR、XOR、NOT。
-
-
散列类型
-
赋值与取值
HSET key field value (如果是插入,返回1,更新返回0)
HGET key field
HMSET key field value [field…]
HMGET key field[field…]
HGETALL key
-
判断字段是否存在
HEXISTS key field
-
当字段不存在时赋值
HSETNX key field value(如果字段存在,不进行任何操作)
-
增加数字
HINCRBY key fieldincrement(散列没有HINCR指令)
-
删除字段 返回值是删除字段的个数
HDEL key field[field…]
-
-
列表类型
-
向列表两端增加元素 返回添加元素的个数
LPUSH key value [value…]
RPUSH key value [value…]
-
从列表两端弹出数据
LPOP key
RPOP key
-
获取列表中的元素个数
LLEN key 当键不存在返回0
-
获取列表片段
LRANGE key start stop
获取列表start到stop的元素,包含两端的元素,起始位置为0
-
删除列表中的指定值
LREM key count value
删除前count个值为value的元素,返回值是实际删除的元素个数。
当count>0,LREM从列表左边开始删除前count个值为value的元素
当count<0,LREM从列表右边开始删除前count个值为value的元素
当count=0,LREM会删除所有值为value的元素
-
获得/设置指定索引的元素值
LINDEX key index
LSET key index value
-
只保留列表的指定片段
LTRIM key start end
-
向列表中插入元素
LINSERT key BEFORE|AFTER pivot value
从左到右查找值为pivot的元素,根据第二个参数决定插入前面还是后面
-
将元素从一个列表转移到另一个列表
RPOPLPUSH source destination
从source的右边弹出一个元素,然后将其加入到destination的左边
-
-
集合类型
-
增加删除元素
SADD key member [member…]
SREM key member [member…]
如果不存在则新建,对于已经存在集合中的元素,直接忽略,返回成功加入的元素数量
-
获得集合中的所有元素
SMEMBERS key
-
判断元素时候在集合中
SISMEMBER key member
-
集合间运算
SDIFF key [key…] 差集
SINTER key [key…] 交集
SUNION key [key…] 并集
-
获取集合中的元素个数
SCARD key
-
进行集合运算并将结果存储
SDIFFSTORE destination key [key…]
SINTERSTORE destination key [key…]
SUNIONSTORE destination key [key…]
-
随机获得集合中的元素
SRANDMEMBER key [count]
不指定count ,默认为1个,当count > 0,获得count个不重复的元素,当count < 0,获得的元素可能重复
-
从集合中弹出一个元素
SPOP key
随机弹出
-
-
有序集合类型
-
增加元素
ZADD key score member [score member…]
-
获取元素
ZSCORE key member
-
获取排名在某个范围的元素列表
ZRANGE key start stop [WITHSCORES]
ZREVRANGE key start stop [WITHSCORES]
ZRANGE命令会按照元素分数从小到大的顺序返回索引从start带stop之间的所有元素(包含两端)。
ZREVRANGE是从大到小
-
获取指定分数范围的元素
ZRANGEBYSOCRE key min max [WITHSCORES] [LIMIT offset count]
-
增加某个元素的分数
ZINCRBY key increment member
-
获取集合中元素的数量
ZCRAD key
-
获得制定分数范围内的元素个数
ZCOUNT key min max
-
删除一个或多个元素
ZREM key member [member…]
-
按照排名范围删除元素
ZREMRANGEBYRANK key start stop
-
按照分数范围删除元素
ZREMRANGEBYSCORE key min max
-
获取元素的排名
ZRANK key member
ZREVRANK key member
-
计算有序集合的交集
ZINTERSTORE destination numkeys key [key…]
-