首页 > 大数据 > 数据分析 > 淘宝当天新店旺旺采集软件 新开店铺链接提取工具分析
Redis数据结构
redis是一个C语言开发的高性能的内存型键值对NoSql数据库
5种常见数据类型
字符串String
能表示字符串、整数、浮点数
常见操作
set key value
get key
getset key value
setnx key value
append key value 向尾部追加
strlen key
incr key
incrby key increment 增加指定整数
decr
10.decrby key increment
集合 set
无序唯一元素,个数2^32-1
sadd key m1 m2
srem
smembers
spop
srandmember
scard
sismember
sinter
sdiff
10.sunion
适用于不能重复且不需要顺序结果的数据结构,比如spop随机抽奖
有序集合 sorted set
zset 有序集合,元素本身是无序不重复
zadd
zrem
zcard
zcount
zincrby
zscore
zrank
zrevrank
zrange
zrevrange
可以用于各种排行榜
列表
list可以表述存储有序、可重复元素,最多为2^32-1个元素,为一个双向链表,可作为栈或队列使用
lpush/rpush key v1 v2
lpop/rpop key
lpushx key v1 将值插入到列表头部
rpushx
blpop key timeout 空时候阻塞
brpop
llen
lindex key index
lrange
lrem key count value
lset key index vallue
ltrim
rpoplpush key1 key2
brpoplpush
linsert
Hash哈希
是一个string类型的field和value映射表,提供了字段和字段值映射

hset
hmset
hsetnx
hexists
hget
hmget
hgetall
hdel
hincrby
10.hlen
3种不常见数据类型
bitmap位图类型
bitmap是进行位操作的,通过一个bit位来表示某个元素对应的值或者状态,其中key就是对应元素本身。bitmap本身会极大节省存储空间
setbit key offset value 设置key在offset处的bit值
getbit key offset 获得key在offset处的bit值
bitcount key 获得key的bit位位1的个数
bitpos key value 返回第一个被设置为bit值得索引值
bittop and/or/xor/not destkey key [key…] 对多个key进行逻辑后运算后存入destkey中
应用场景:
6. 每月用户签到,用户id为key,日期作为偏移量1表示签到
7. 统计活跃用户,日期为key,用户id为偏移量1表示活跃
8. 查询用户状态,日期为key,用户id为偏移量1表示在线
geo地理位置类型
redis用来处理位置信息,原理是Z阶曲线。在x,y轴上的十进制转换成二进制数,采用x轴和y轴对应的二进制数依次交叉后得到一个六位数编码。把数字从小到大依次连接起来的曲线称为Z阶曲线,Z阶曲线是吧多维转换成1维的一种方式,然后利用Base32这种数据编码机制,主要用来把二进制数据编码成可见字符串


geoadd key 经度 纬度 成员名称1 经度1 纬度1 成员名称2
geohash key 成员名称1 成员名称2 返回标准的hash串
geopos key 成员名称1 成员名称2
geodist key 成员1 成员2
georadiusByMember key 成员 值单位 根据成员查找附近的成员
应用场景:记录地理位置,计算距离,查找“附近的人”
stream数据流类型
stream 是redis5.0之后新增的数据结构,用于可持久化的消息队列,几乎满足了消息队列的全部内容,包括: 消息ID的序列化生成、消息的遍历、消息的阻塞和非阻塞读取、消息的分组消费、未完成消息的处理、消息队列得监控
xadd key id<*> field1 value1
xread
xrange
xrevrange
xdel
xgroup create/destroy key
xgroup delconsumer key groupname cname
xreadgroup group groupname consumer count streams key
Redis常用命令
keys pattern 返回满足指定pattern的所有key
del key
exists key
expire key ttl 指定key的过期时间
rename oldkey newkey
type key
Redis过期机制
缓存过期和淘汰策略
redis性能影响因素
长期使用,key会不断增加,redis作为缓存使用,物理内存也会满
内存与硬盘交换,虚拟内存,频繁IO性能急剧下降
redis设置maxmemory
不设置场景:Redis的key是固定的,不会增加,作为DB使用,保证数据完整性,不能淘汰,可以做集群,便于横向扩展。缓存淘汰策略:禁止驱逐maxmemory-policy noeviction
设置场景:redis作为缓存使用,不断增加key,一般设置为物理内存的3/4在redis.conf中maxmemory 1024mb,如果设置了maxmemory,那么久需要设置 maxmemory-policy
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69990899/viewspace-2762068/ ,如需转载,请注明出处,否则将追究法律责任。