Redis常见类型及API
五大数据类型
1.String
SETRANGE 指定位置替换字符串
INCRBY key xx 指定步长自增
DECRBY key xx 指定步长自减
setex(set with expire)设置过期时间
setnx (set if not exist)不存在设置,如果存在当前key返回0,创建失败(分布式锁中常用)
mset、mget 批量创建key-value,批量选择key
msetnx 如果不存在则批量创建,只要有一个key存在,就全都创建错误
getset 先get然后set
2.List
LPUSH 左边存入
LRANGE 左边取出
RPUSH 右边存入
LPOP 左边移除
RPOP 右边移除第一个
LINDEX 通过索引获取
LLEN 获取列表长度
LREM 移除指定的值
LTRIM 取子列表
RPOPLPUSH 移除右边第一个元素并移动到另一个list中
LSET 替换指定位置的元素值(更新操作,如果不存在,返回错误)
LINSERT 将某个具体的值插入到列表中某个元素的前或后面
3.Set
SADD 添加元素
SMEMBERS 查看set中的元素
SISMEMBER 判断某一个值是不是在set集合中
SCARD 查看set里元素个数
SREM 移除指定元素
SRANDMEMBER 随机抽选出一个(或多个)元素
SPOP 随机删除一个元素
SMOVE 移动指定元素到另一个Set中
SDIFF 筛选差集
SINTER 筛选交集
SUNION 筛选并集
4.Hash(key-map)
hset、hget、hmset、hgetall和String类型差不多
hdel 删除指定key
hlen 查看长度
hexists 判断指定key是否存在
hkeys 只获得所有的key
hvals 只获得所有的values
hincrby 指定字段自增
hsetnx 如果不存在则可以设置
5.Zset(有序集合)
zadd 添加元素
zrangebyscore set +inf -inf 从大到小排序
zrevrange set 0 -1 从大到小排序
zrem 移除
zcard 查看元素个数
zcount 查看指定区间的成员个数
三大特殊类型
1.geospatial
geoadd 添加经度、纬度、城市
geopos 获取指定城市的经度和纬度
geodist 获取两地之间的直线距离 可以切换单位m、km、mi(英里) ft(英尺)
georadius 以某点为中心指定半径查询集合中所有的元素
georadiusbymember 以某个元素为中心指定半径查询集合中所有元素
geohash 返回指定元素经纬度的Geohash字符串
geospatial底层原理是基于Zset的,可以用Zset中的命令对geospatial元素进行操作
2.Hyperloglog (允许容错的前提下可以使用)
pfadd 添加
pfcount 统计个数
pfmerge 合并(求并集)
3.Bitmaps(位图)
setbit
getbit
bitcount 统计元素中为1的位的个数