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

做网站电脑配置微信小程序开发平台游戏

做网站电脑配置,微信小程序开发平台游戏,wordpress更换目录,wordpress5.52 php版本什么是redis数据库 Redis 是一种基于内存的数据库#xff0c;对数据的读写操作都是在内存中完成#xff0c;因此读写速度非常快#xff0c;常用于缓存#xff0c;消息队列、分布式锁等场景。#xff0c;Redis 还支持 事务 、持久化、Lua 脚本、多种集群方案#xff08;主…什么是redis数据库 Redis 是一种基于内存的数据库对数据的读写操作都是在内存中完成因此读写速度非常快常用于缓存消息队列、分布式锁等场景。Redis 还支持 事务 、持久化、Lua 脚本、多种集群方案主从复制模式、哨兵模式、切片机群模式、发布/订阅模式内存淘汰机制、过期删除机制Redis 应用非常广泛如 Twitter、暴雪娱乐、Github、Stack Overflow、腾讯、阿里巴巴、京东、华为、新浪微博等很多 中小型公司也在使用 应用 记录朋友圈点赞数、评论数和点击数hash)记录朋友圈说说列表排序便于快速显示朋友圈list)记录文章的标题、摘要、作者和封面用于列表页展示hash)记录朋友圈的点赞用户ID列表list评论ID列表list用 于显示和去重计数zset缓存热点数据减少数据库压力hash如果朋友圈说说 ID 是整数 id可使用 redis 来分配朋友圈说说 id计数器string通过集合set的交并差集运算来实现记录好友关系set 游戏业务中每局战绩存储list) Redis存储的结构 Redis 内部整体的存储结构是一个大的 HashMap通过 key -value 的方式来存储组织数据的key冲突通过 链表去实现每个dictEntry为一个key/value对象value为RedisObject。 所有的key值都是string类型。 key值的命名规范 【推荐】Redis key命名需具有可读性以及可管理性不该使用含义不清的key以及特别长的key名 【强制】以英文字母开头命名中只能出现 小写字母、数字、英文点号(.) 和 英文半角冒号(:) 【强制】不要 包含 特殊字符如下划线、空格、换行、单双引号以及其他转义字符 【强制】命名规范业务模块名:业务逻辑含义:其他:value类型 例如user:basic.info:{userid}:string Redis中的value数据结构的类型 Redis提供了丰富的数据类型常见的有五种数据类型String(字符串Hash(哈希List(列表Set集合、Zset有序集合。 string 是一个安全的二进制字符串双端队列 链表list有序插入有序散列表 hash对顺序不关注field 是唯一的无序集合 set对顺序不关注里面的值都是唯一的有序集合 zset对顺序是关注的里面的值是唯一的根据 member 来确定唯一根据 score 来确定有序 String String是一种安全字符串。 什么安全字符串 使用安全字符串的函数都不会是超出字符串缓冲区。 常用指令 //设置 key-value 类型的值 127.0.0.1:6379 set name sjp OK # 根据 key 获得对应的 value 127.0.0.1:6379 get name sjp # 判断某个 key 是否存在 127.0.0.1:6379 exists name (integer) 1 # 返回 key 所储存的字符串值的长度 127.0.0.1:6379 strlen name (integer) 3 # 删除某个 key 对应的值 127.0.0.1:6379 del name (integer) 1#批量设置 key-value类型的值 127.0.0.1:6379 mset name:1001 sjp name:1002 lisi OK # 批量获取多个 key 对应的 value 127.0.0.1:6379 mget name:1001 name:1002 1) sjp 2) lisistring的应用  直接缓存整个对象的 JSON 命令例子  SET user:1 {name:sjp, age:18}。 采用将 key 进行分离为 user:ID:属性采用 MSET 存储用 MGET 获取各属性值命令例子  MSET user:1:name xiaolin user:1:age 18 user:2:name xiaomei user:2:age 20 计数器字符串的内容为整数的时候可以使用 # 设置 key-value 类型的值 127.0.0.1:6379 set count 1 OK # 将 key 中储存的数字值增一 127.0.0.1:6379 incr count (integer) 2 # 将key中存储的数字值加 10 127.0.0.1:6379 incrby count 100 (integer) 102 # 将 key 中储存的数字值减一 127.0.0.1:6379 decr count (integer) 101 # 将key中存储的数字值键 10 127.0.0.1:6379 decrby count 10 (integer) 91List List 列表是双向链表实现列表首尾操作删除和增加时间复杂度 O(1).查找中间元素时间复杂度为O(n) 列表中数据是否压缩的依据 1. 元素长度小于 48不压缩 2. 元素压缩前后长度差不超过 8不压缩 基础命令 # 从队列的左侧入队一个或多个元素 LPUSH key value [value ...] # 从队列的左侧弹出一个元素 LPOP key # 从队列的右侧入队一个或多个元素 RPUSH key value [value ...] # 从队列的右侧弹出一个元素 RPOP key # 返回从队列的 start 和 end 之间的元素 0, 1 2 负索引 LRANGE key start end # 从存于 key 的列表里移除前 count 次出现的值为 value 的 元素 # list 没有去重功能 hash set zset LREM key count value # 它是 RPOP 的阻塞版本因为这个命令会在给定list无法弹出 任何元素的时候阻塞连接 BRPOP key timeout # 超时时间 延时队列 应用场景 栈 LPUSH LPOP # 或者 RPUSH RPOP队列 LPUSH RPOP # 或者 RPUSH LPOP 消息队列 消息队列在存取消息时必须要满足三个需求分别是消息保序、处理重复的消息 和 保证消息可靠性。 生产者使用lpush往list集合中添加消息消费者使用 brpop往list集合中获取消息  BRPOP命令也称为 阻塞式读取客户端在 没有 读到队列数据时自动阻塞直到有新的数据写入队列再开始读取新数据 2、消息队列如何处理重复的消息 消费者要实现重复消息的判断需要 2 个方面的要求 每个消息都有一个全局的 ID。消费者 要记录已经处理过的消息的 ID。当收到一条消息后消费者程序就可以对比收到的消息 ID 和记录的已处理过的消息 ID来判断当前收到的消息有没有经过处理。如果已经处理过那么消费者程序就不再进行处理了。 List 并不会为每个消息生成 ID 号所以我们需要自行为每个消息生成一个全局唯一ID生成之后我们在用 LPUSH 命令把消息插入 List 时需要在消息中包含这个全局唯一 ID 3.消息队列如何保证消息的可靠性 当消费者程序从 List 中读取一条消息后List 就不会再留存这条消息了。所以如果消费者程序在处理消息的过程出现了故障或宕机就会导致消息没有处理完成那么消费者程序再次启动后就没法再次从 List 中读取消息了。 List 类型提供了 BRPOPLPUSH 命令这个命令的 作用是让消费者程序从一个 List 中读取消息同时Redis 会把这个消息再插入到另一个 List可以叫作备份 List留存。 Hash Hash 是一个键值对key - value集合其中 value 的形式如 value[{field1value1}...{fieldNvalueN}]。Hash 特别适合用于存储对象. 内部实现 Hash 类型的底层数据结构是由压缩列表或哈希表实现的 如果 哈希类型元素个数小于 512 个默认值可由 hash-max-ziplist-entries 配置所有值小于 64 字节默认值可由 hash-max-ziplist-value 配置的话Redis 会使用压缩列表作为 Hash 类型的底层数据结构。 基础命令 # 获取 key 对应 hash 中的 field 对应的值 HGET key field # 设置 key 对应 hash 中的 field 对应的值 HSET key field value # 设置多个hash键值对 HMSET key field1 value1 field2 value2 ... fieldn valuen # 获取多个field的值 HMGET key field1 field2 ... fieldn # 给 key 对应 hash 中的 field 对应的值加一个整数值 HINCRBY key field increment # 获取 key 对应的 hash 有多少个键值对 HLEN key # 删除 key 对应的 hash 的键值对该键为field HDEL key field应用 一般对象用 String Json 存储对象中某些频繁变化的属性可以考虑抽出来用 Hash 类型存储。 购物车 set 集合 Set 类型是一个 无序并唯一的键值集合它的 存储顺序不会按照插入的先后顺序进行存储 一个集合最多可以存储 2^32-1 个元素。概念和数学中个的集合基本类似可以交集并集差集等等。。 存储结构 元素都为 整数且节点数量小于等于 512set-max-intsetentries则使用整数数组存储 元素当中有一个不是整数或者节点数量大于 512则使用 字典存储  基础命令  # 添加一个或多个指定的member元素到集合的 key中 SADD key member [member ...] # 计算集合元素个数 SCARD key # SMEMBERS key SMEMBERS key # 返回成员 member 是否是存储的集合 key的成员 SISMEMBER key member # 随机返回key集合中的一个或者多个元素不删除这些元素 SRANDMEMBER key [count] # 从存储在key的集合中移除并返回一个或多个随机元素 SPOP key [count] # 返回一个集合与给定集合的差集的元素SDIFF key [key ...] # 返回指定所有的集合的成员的交集 SINTER key [key ...] # 返回给定的多个集合的并集中的所有成员 SUNION key [key ...]set与list的区别 list可以存储重复元素set只能存储非重复元素。 list是按照元素的插入的先后顺序进行存储而set则是无序方式存储元素 应用 点赞 set可以保证一个用户只能点一个赞例如key是文章idvalue是用户id uid:1 、uid:2、uid:3 三个用户分别对 article:1 文章点赞了。 #uid:1 uid:2 uid:3 用户对文章 article:1 点赞 127.0.0.1:6379 sadd article:1 uid:1 (integer) 1 127.0.0.1:6379 sadd article:1 uid:2 (integer) 1 127.0.0.1:6379 sadd article:1 uid:3 (integer) 1#获取 article:1 文章所有点赞用户 : 127.0.0.1:6379 smembers article:1 1) uid:3 2) uid:2 3) uid:1#获取 article:1 文章的点赞用户数量 127.0.0.1:6379 scard article:1 (integer) 3推荐好友 Set 类型支持交集运算所以可以用来计算共同关注的好友、公众号等。 key 可以是用户idvalue 则是好友 #插入A的好友 127.0.0.1:6379 sadd follow:A sjp king lisi (integer) 3 #插入B的好友 127.0.0.1:6379 sadd follow:B chen lisi sjp (integer) 3 #A不同于B的好友 127.0.0.1:6379 sdiff follow:A follow:B 1) king #A与B的共同好友 127.0.0.1:6379 sinter follow:A follow:B 1) sjp 2) lisi抽奖 key为抽奖活动名value为员工名称把所有员工名称放入抽奖箱 #添加抽奖人员 127.0.0.1:6379 sadd lucky A B C D E (integer) 5#允许重复抽奖 127.0.0.1:6379 srandmember lucky 1 1) C 127.0.0.1:6379 srandmember lucky 2 1) E 2) D 127.0.0.1:6379 srandmember lucky 3 1) B 2) C 3) A#不重复抽奖 127.0.0.1:6379 spop lucky 1 1) A 127.0.0.1:6379 spop lucky 2 1) D 2) Ezset Zset 类型有序集合类型相比于 Set 类型多了一个排序属性 score分值对于有序集合  有序集合保留了集合不能有重复成员的特性分值可以重复但不同的是有序集合中的元素可以排序。 zset 根据分值进行排序。 基础命令 # 添加到键为key有序集合sorted set里面 ZADD key [NX|XX] [CH] [INCR] score member [score member ...] # 从键为key有序集合中删除 member 的键值对 ZREM key member [member ...] # 返回有序集key中成员member的score值 ZSCORE key member # 为有序集key的成员member的score值加上增量increment ZINCRBY key increment member # 返回key的有序集元素个数 ZCARD key # 返回有序集key中成员member的排名 ZRANK key member # 返回存储在有序集合key中的指定范围的元素 order by id limit 1,100 ZRANGE key start stop [WITHSCORES] # 返回有序集key中指定区间内的成员(逆序) ZREVRANGE key start stop [WITHSCORES]应用场景 有序集合比较典型的使用场景就是排行榜。例如 学生成绩的排名榜、游戏积分排行榜、视频播放排名、电商系统中商品的销量排名等。
http://www.w-s-a.com/news/970024/

相关文章:

  • 如何做招聘网站网站建设中 敬请期待
  • 雅安工程交易建设网站做vip电影网站
  • 网站建设方维网站标题title为什么不能频繁的改
  • 网站建设如何上传文件wordpress列表自定义数据表
  • 摄影课程自学网站科技项目的类型有
  • 未来最紧缺的十大专业长春seo顾问
  • 为什么点不开网站公关公司是做什么的
  • wordpress主要菜单如何对网站页面进行优化
  • 建设银行深分行圳招聘网站建立互联网公司网站
  • 湖南做旅游网站哪家最好html5手机网站免费模板
  • 云服务器上放多个网站wordpress ping大全
  • 以下属于网站的管理 更新 维护如何才能做好品牌网站建设
  • 国家工业和信息化部网站备案系统网站建设设计费用
  • 网站建设利弊宁波高端网站建设联系方式
  • 网站订票策划方案郑州代做网站
  • 免费的网站加速器注册公司邮箱
  • 千助网站建设网站整站程序
  • 自学建网站做网站优化访问网站出现目录
  • 济南网站建设是什么百度官网登录入口手机版
  • net快速建站西宁手机网站建设
  • 网站浏览器不兼容怎么办软件系统开发大概多少钱
  • 网站建设哪个公司最好shift wordpress
  • 公司网站建设功能介绍室内设计学习
  • 做网站策划容易遇到哪些问题沈阳公司网站制作
  • 做php网站都用框架吗网站备案当面核验拍摄照片
  • 泉州企业自助建站兰州最好的互联网公司
  • 监察部门网站建设方案网站seo技术教程
  • 个人网站制作源代码下载品牌建设部
  • 网站备案需要准备什么文创产品设计思路
  • 网站开发书籍推荐青岛城阳新闻最新消息