Redis八大类型介绍及使用

使用spring boot的小伙伴可以参考《Spring Boot整合Redis》

1.String 类型

作用语法
设置值key-valueset key value
获取valueget key
删除元素del key
追加值(若没有对应的key,则自动创建key)append key extraValue
获取value的长度strlen key
加一incr key
减一decr key
加numincrby key num
减numdecrby key num
获取start到end之间的key (若end是负数则获取start到最后)getrange key start end
设置过期时间setex key seconds value
key不存在的前提下才会进行设置setnx key value
key不存在的情况下设置过期时间set key value nx ex seconds
设置多个值mset key1 value1 key2 value2
查询多个值mget key1 key2
原子性操作设置值msetnx key1 value1 key2 value2
value设置成json对象mset key {key1:value1, key2: value2}
获取并设置新值如果key存在则返回旧的value并且覆盖旧的value,如果key不存在则返回nil,执行失败)getset key valuee
key可以设置成特殊类型例如 user:{id}:{field}

2.List类型

作用语法
从头部插入数据lpush key value
从尾部插入数据rpushkey value
查询范围内的数据lrange key start end
移除头部的第一个值lpop key
移除尾部的第一个值rpop key
获取第index的值lindex key index
获取列表的长度llen key
从上到下移除一个keylrem key
从下到上删除一个keyrrem key
从上到下移除num个valuelrem key num value
截取start到end数据(其他未被截取到的元素会被删除)ltrim key start end
从旧的key的头部移动到新的key的头部lpoplpush keyold keynew
将下标index的值替换成新的newValue(不存在会报错)lset key index newValue
在已存在值的前面添加一个新的值linsert key before existsValue newValue
在已存在值的后面添加一个新的值linsert key after existsValue newValue

3.Set类型

作用语法
添加数据sadd key value
查看数据smembers key
查看是否存在该元素(返回存在的数据)sismember key value
获取key的元素个数scard key
移除value元素srem key value
随机获取一个元素sandmember key
随机删除一个元素spop key
将value 移动到newKeysmove key newKey value
获取key1和key2的差集sdiff key1 key2
获取key1和key2的交集sinter key1 key2
获取key1和key2的并集sunion key1 key2

4.zset 有序集合

作用语法
在index位置添加一个元素valuezadd key index value
添加多个元素zadd key index1 value1 index2 value2
排序 从小到大zrangebyscore key min max
排序 从大到小zrevrangebyscore key +inf -inf
排序 从负无穷到正无穷zrangebyscore key -inf +inf
删除指定元素zrem key value
获取元素个数zcard key
获取 范围内的数据 (max为-1 代表 获取到最后一个)zrange key min max
获取 指定区间的成员数量zcount key index1 index2

5.geospatial 地理位置 底层使用zset实现的(zset的名依然适用于此)

作用语法(距离单位: m(米) km(千米)mi(英里)ft(英尺))
新增一个中国城市的经纬度geoadd key lat lng name
添加多个经纬度geoadd key lat1 lng1 name1 lat2 lng2 name2
获取经纬度 (一个或多个)geopos key name1 name2
获取两个name之间的距离差geodist key name1 name2 km
获取此经纬度范围内500km的 name(带有距离差)georadius key lat lng 500 km withdist
获取此经纬度范围内500km的 name(带有经纬度)georadius key lat lng 500 km withcoord
查询name为中心的1000km范围内的城市georediusbymember key name 1000 km
获取范围内的元素zange key min max
移除元素zrem key nam

6.Hash类型 本质和String类似,value 用hash格式表示

作用语法 (key:redis的key,field:hash的key, value:hash的value)
添加数据hset key field value
添加数据,不存在则设置,否则设置失败hsetnx key field value
获取field 对应的valuehget key field
设置多个hashhmset key field1 value1 field2 value2
获取多个field的值hmget key field1 field2
获取所有的hash元素hgetal
删除指定的field元素hdel key field
获取长度hlen key
判断是否存在某一个fieldhexists key field
获取key的所有的fieldshkeys key
获取key的所有的value(hash中的value)hvalues key
自增numhincrby key field num

7.hyperloglog 并集去除重复

作用语法
设置元素pfadd key value1 value 2
统计元素个数pfcount key
合并去重key2和key3到 key1pfmerge key1 key2 key3
设置元素pfadd key value1 value 2
设置元素pfadd key value1 value 2

8.bitmaps 位存储 操作二进制 0, 1

作用语法
记录当前index的 bit值 (0或1)setbit key index bit2
获取数据getbit key index
统计数量,可有条件和无条件bitcount key start end

总结

本文介绍了Redis的八种数据存储类型

  • 工作中最常用的String可以满足大部分场景
  • 部分排序、热点数据、流量等,可以使用zset
  • 粗略距离位置可以使用geospatial,但是测试发现和谷歌地图5km的偏差
  • bitmaps 主要用于统计,0和1用于两种类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值