当前位置: 首页 > news >正文

天津市建设工程质量安全监督管理总队网站家具展示网站源码

天津市建设工程质量安全监督管理总队网站,家具展示网站源码,番禺网站推广,高端网站建设公司新鸿儒目录 五种基础数据结构 string hash list set zset 用zset实现微博热搜 scan遍历 高频问题 五种基础数据结构 string 单个赋值set 批量赋值/取值 msetmget 设置不存在字符串setnx, 如果不存在, 则设置成功返回1, 如果存在返回0, 可以当做分布式锁 删除值 设置过期时…

目录

五种基础数据结构

string

hash

list

set

zset

用zset实现微博热搜

scan遍历

高频问题


五种基础数据结构

string

单个赋值set

批量赋值/取值

  • mset
  • mget

设置不存在字符串setnx, 如果不存在, 则设置成功返回1, 如果存在返回0, 可以当做分布式锁

删除值

设置过期时间/查看过期时间

  • expire key time
  • ttl key

数字自增

设置分布式锁

setnx order:1 true        // 返回1代表获取锁成功

// 执行业务

del order:1

set order:1 true ex 15 nx        // 加上过期时间, 防止死不释放

hash

设置hash的key field value

批量设置hash field

获取hash所有属性

删除hash某个属性

hash和string(非json)存储对象对比

优点:

  • hash能规整同类数据, 便于管理
  • hash更节省空间(key少)
  • hash对部分属性的更新性能更好

缺点:

  • 过期时间只能在key上, 不能在属性上
  • 在集群架构不适合大规模使用
  • 不适用field过多, 避免big key

list

lpush key val1 val2 从左边放入元素

rpush key val1 val2 从右边放入元素

lpop key len 从左边拿len个元素

rpop key len 从右边拿len个元素

实现栈结构-FILO

实现队列结构-FIFO

blpop key len timeout 从左边拿len个元素,没有元素就阻塞timeout秒, 如果timeout=0就一直阻塞

lpush+brpop=阻塞队列

lrange key start end 批量获取队列元素(不会移除,元素还在)

set

sadd key val1 val2 val3 批量往集合添加元素

scard key 获取集合个数

srem key val1 移除集合元素

sismembers key 获取集合所有元素

sismember key val1 判断集合是否存在该元素

srandmember key 3 从集合选出3个元素, 不删除

spop key 3        从集合选出3个元素, 并且从集合中删除

sinter key1 key2        取交集

sinterstore des1 key1 key2        取交集并存入新的集合des1

sunion key1 key2        取并集

sunion des2 key1 key2        取并集存入新的集合des2

sdiff key1 key2 key3        取差集

sdiffstore des2 key1 key2 key3        取差集并存入新的集合

应用

  1. 用srandmember/spop实现抽奖功能
  2. 用sinter/sunion/sdiff实现关注模型(可能认识的人)

zset

zadd key score val        往集合添加key和分数和值

zscore key val        获取集合元素分值

zrange key start end        按分值升序

zrevrange key start end        按分值降序

zunion numkeys key1 key2        并集计算

zinter numkeys key1 key2        交集计算

zdiff numkeys key1 key2        差集计算

用zset实现微博热搜

1. 点击一条消息

zincrby key incr val

2. 展示当日前五

zrevrange hotnew:231126 0 5 withscores

3. 七日搜索榜单

zunionstore hotnew:231119-231126 7 hotnew:231119 hotnew:231120 ... hotnew:231123

4. 七日搜索榜单

zrevrange hotnew:231119-231126 0 5 withscores

scan遍历

SCAN cursor [MATCH pattern] [COUNT count]

cursor(hash桶的索引值):游标, 从0开始遍历, 每次用返回的值替换下一次检索的游标, 结束时返回0

pattern:正则表达式

count: 返回结果个数近似值

注意:scan并非完美无瑕, 如果在scan的过程中如果有键的变化(增加、 删除、 修改) ,可能会碰到下面问题: 新增的键可能没有遍历到, 重复遍历键等, 也就是说scan并不能保证完整的遍历出来所有的键

高频问题

1. redis是单线程吗?

只有键值读写是单线程, 其他的持久化,过期删除,集群同步都是额外线程执行.

2. redis为什么高性能?

  • 所有数据都存内存中, 都是内存级别运算
  • IO多路复用,redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器
  • 单线程执行,没有上下文切换
http://www.yayakq.cn/news/672344/

相关文章:

  • 模板手机网站建设公司建立短语
  • 下载中心网站开发手机网站开发调用照片
  • 固定ip做网站和域名区别网站制作知识
  • 网站手机端做app开发工具wordpress如何适配手机端
  • 推广引流网站太原网站建设推广公司推荐
  • 自助建站系统建的网站做排名吗python 网站开发 用什么框架
  • 网站开发毕业设计文献综述wordpress 删除的模板文件在哪
  • 中电科工程建设有限公司网站如何做自己的网站商城站
  • 房地产型网站建设有创意的30个网站
  • 中山移动网站建设报价网站分页符素材
  • 广西南宁人才招聘网站婚礼策划网站
  • 网站建设难点是什么最新新闻热点事件100字
  • 网站怎么做301启博微分销系统
  • 杭州网站建设公司代理加盟wordpress极速
  • 大气宽屏网站模板网站建设方案书写
  • 租整套房做民宿的网站wordpress和自己写
  • 商城网站开发技术二级域名免费解析
  • 长春网站网站推广公司设计wordpress漂流瓶插件
  • 给wordpress添加字段深圳搜索引擎优化推广
  • 网站域名备案证书网站小游戏怎么做的
  • 深圳网站建设外包做网站开发要装什么软件
  • 网站 做 vga网页设计与网站建设在线考试石油大学
  • 做网站资料准备什么电商网站开发 文献综述
  • 网站建设 建站知识龙南建设局网站
  • 人力资源公司网站建设哪里创建免费个人网站
  • 宁波哪里做网站精细化学品网站建设
  • 网站备份 ftp国际网站排名查询
  • 渑池县建设局网站我的网站模板下载
  • 网站建设代码怎么导入图片网站开发成本有哪些
  • 深圳罗湖住房和建设局网站app平台制作开发