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

溧阳 招网站开发兼职上海哪个区最好

溧阳 招网站开发兼职,上海哪个区最好,哪里可以检测短链脂肪酸,望江县建设局网站一、Redis入门介绍 1、什么是Redis? Redis#xff0c;英文全称是Remote Dictionary Server#xff08;远程字典服务#xff09;#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库#xff0c;并提供多种语言的API。… 一、Redis入门介绍 1、什么是Redis? Redis英文全称是Remote Dictionary Server远程字典服务是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库并提供多种语言的API。 Redis的数据是存在内存中的。它的读写速度非常快每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存另外Redis也经常用来做分布式锁。除此之外Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。 Redis 的读写速度比 Mysql 快原因 Redis 存储的是 key-values 格式的数据时间复杂度是 O(1) 即直接通过 key 查询对应的 value 。 而如 Mysql 数据库底层的实现是 B 树时间复杂度是 O(logn) 。 2、Redis的基本数据结构类型  2.1、Redis有以下这五种基本类型  1String字符串 String是Redis最基础的数据结构类型它是二进制安全的可以存储图片或者序列化的对象值最大存储为512M。 内部编码int8字节长整型embstr小于等于39字节字符串raw大于39个字节字符串。 应用场景共享session、分布式锁计数器、限流。 语法 redis 127.0.0.1:6379 COMMAND KEY_NAME 实列 redis 127.0.0.1:6379 SET w3ckey redis OK redis 127.0.0.1:6379 GET w3ckey redis C语言的字符串是char[]实现的而Redis使用SDSsimple dynamic string 封装sds源码如下 struct sdshdr{ unsigned int len; // 标记buf的长度 unsigned int free; //标记buf中未使用的元素个数char buf[]; // 存放元素的坑 } 注意SDS中O(1)时间复杂度就可以获取字符串长度而C 字符串需要遍历整个字符串时间复杂度为O(n)。  SDS 结构图 2Hash哈希 Redis hash 是一个string类型的field和value的映射表hash特别适合用于存储对象。在Redis中哈希类型是指v值本身又是一个键值对k-v结构。如果开发使用hgetall哈希元素比较多的话可能导致Redis阻塞可以使用hscan。而如果只是获取部分field建议使用hmget。 内部编码ziplist压缩列表 、hashtable哈希表 应用场景缓存用户信息等。 实例 redis 127.0.0.1:6379 HMSET w3ckey name redis tutorial description redis basic commands for caching likes 20 visitors 23000 OK redis 127.0.0.1:6379 HGETALL w3ckey1) name 2) redis tutorial 3) description 4) redis basic commands for caching 5) likes 6) 20 7) visitors 8) 23000 字符串和哈希类型对比如下图 3List列表 Redis列表是简单的字符串列表按照插入顺序排序。你可以添加一个元素导列表的头部左边或者尾部右边。列表list类型是用来存储多个有序的字符串一个列表最多可以存储2^32-1个元素 。 内部编码ziplist压缩列表、linkedlist链表 应用场景消息队列文章列表。具体参考以下 lpushlpopStack栈 lpushrpopQueue队列 lpshltrimCapped Collection有限集合 lpushbrpopMessage Queue消息队列 实例 redis 127.0.0.1:6379 LPUSH w3ckey redis (integer) 1 redis 127.0.0.1:6379 LPUSH w3ckey mongodb (integer) 2 redis 127.0.0.1:6379 LPUSH w3ckey mysql (integer) 3 redis 127.0.0.1:6379 LRANGE w3ckey 0 101) mysql 2) mongodb 3) redis List(列表)类型的插入与弹出原理如下图 List(列表)缺点链表型lists的元素定位会比较慢而数组型lists的元素定位就会快得多。 4Set集合 Redis的Set是string类型的无序集合。集合成员是唯一的这就意味着集合中不能出现重复的数据。Redis 中 集合是通过哈希表实现的所以添加删除查找的复杂度都是O(1)。其中smembers和lrange、hgetall都属于比较重的命令如果元素过多存在阻塞Redis的可能性可以使用sscan来完成。 内部编码intset整数集合、hashtable哈希表 应用场景用户标签,生成随机数抽奖、社交需求。 实例 redis 127.0.0.1:6379 SADD w3ckey redis (integer) 1 redis 127.0.0.1:6379 SADD w3ckey mongodb (integer) 1 redis 127.0.0.1:6379 SADD w3ckey mysql (integer) 1 redis 127.0.0.1:6379 SADD w3ckey mysql (integer) 0 redis 127.0.0.1:6379 SMEMBERS w3ckey1) mysql 2) mongodb 5zset有序集合 Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 内部编码ziplist压缩列表、skiplist跳跃表 应用场景排行榜社交需求如用户点赞。 实例 redis 127.0.0.1:6379 ZADD w3ckey 1 redis (integer) 1 redis 127.0.0.1:6379 ZADD w3ckey 2 mongodb (integer) 1 redis 127.0.0.1:6379 ZADD w3ckey 3 mysql (integer) 1 redis 127.0.0.1:6379 ZADD w3ckey 3 mysql (integer) 0 redis 127.0.0.1:6379 ZADD w3ckey 4 mysql (integer) 0 redis 127.0.0.1:6379 ZRANGE w3ckey 0 10 WITHSCORES1) redis 2) 1 3) mongodb 4) 2 5) mysql 6) 4 2.2、三种特殊的数据结构类型 1Geospatial Geospatial属于经纬度数据类型Redis3.2推出的地理位置定位用于存储地理位置信息并对存储的信息进行操作。 相关指令 2Hyperloglog Hyperloglog属于不重复计数类型用来做基数统计算法的数据结构如统计网站的UV。  例如一篇文章的浏览量当然这种数据也可以存放到set类型中因为set类型也是不重复的但如果数据量很大则存放到set中会占用大量的内存基于此Redis 在2.8.9 版本中更新了 Hyperloglog 数据结构专门用于存放不重复计数类型的数据其特点是占用的内存很小且固定存放了2^64 个不同元素的key只需要废 12KB内存所以Hyperloglog是存放不重复计数类型的最佳类型。 HyperLogLog 的优点是在输入元素的数量或者体积非常非常大时计算基数所需的空间总是固定 的、并且是很小的。在 Redis 里面每个 HyperLogLog 键只需要花费 12 KB 内存就可以计算接近 2^64 个不同元素的基 数。这和计算基数时元素越多耗费内存就越多的集合形成鲜明对比。 因为 HyperLogLog 只会根据输入元素来计算基数而不会储存输入元素本身所以 HyperLogLog 不能像集合那样返回输入的各个元素。 实例 redis 127.0.0.1:6379 PFADD w3ckey redis1) (integer) 1redis 127.0.0.1:6379 PFADD w3ckey mongodb1) (integer) 1redis 127.0.0.1:6379 PFADD w3ckey mysql1) (integer) 1redis 127.0.0.1:6379 PFCOUNT w3ckey(integer) 3 3Bitmap Bitmap属于位存储数据类型其key值为map类型但是其map的key只能为integer类型value值只能为0或1。Bitmaps 用一个比特位来映射某个元素的状态在Redis中它的底层是基于字符串类型实现的可以把bitmaps成作一个以比特位为单位的数组。 应用场景打卡等 实例 127.0.0.1:6379 setbit sign 0 1 (integer) 0 127.0.0.1:6379 setbit sign 1 0 (integer) 0 127.0.0.1:6379 setbit sign 2 1 (integer) 0 127.0.0.1:6379 setbit sign 3 0 (integer) 0 127.0.0.1:6379 setbit sign 4 1 (integer) 0 127.0.0.1:6379 setbit sign 5 1 (integer) 0 127.0.0.1:6379 setbit sign 6 1 (integer) 0 127.0.0.1:6379 getbit sign 5 (integer) 1 127.0.0.1:6379 getbit sign 3 (integer) 0 127.0.0.1:6379 getbit sign 0 (integer) 1 127.0.0.1:6379 bitcount sign (integer) 5 127.0.0.1:6379 3、总结 3.1、Redis读写速度快的原因 3.2、Redis的数据结构及内部编码图  3.3、跳跃表 1跳跃表是Redis特有的数据结构就是在链表的基础上增加多级索引提升查找效率。 2跳跃表支持平均 OlogN,最坏 ON复杂度的节点查找还可以通过顺序性操作批量处理节点。
http://www.hkea.cn/news/14330882/

相关文章:

  • 永安网站制作佛山提供网站设计方案公司
  • 网上申请个人营业执照网站中国建设银行网站荆门网点查询系统
  • 云服务器如何搭建网站做怎样的网站能赚钱吗
  • 河北网站建设seo优化营销制作设计网络精准推广
  • 沈阳网站建设管理合众商道网站开发
  • 网站加入wordpressseo搜索引擎优化费用
  • 网站视频链接怎么做手机版网站建设报价
  • 网站建设合同浩森宇特王战胜局长
  • 做网站怎么每天更新内容网站改版重新备案
  • 小型电商网站开发大学生做的美食网站
  • 郭仓镇做网站商丘网站建设方案
  • 汕头建站培训网站设计背景图片怎么做的
  • 网站logo在哪里青岛城市建设局网站
  • 网站建设具体运算网站建设首选亿企联盟
  • 长沙网站建设招聘北京和隆优化是干嘛的
  • 温江建设局备案网站做网站用什么软件好
  • 网站建设相关的常德市 网站建设
  • 网站怎么管理办公室设计风格
  • 四川建设厅官方网站证书查询东营垦利
  • wordpress重装后404温州网站优化排名
  • 外贸网站优化谷歌关键词排名外包网站建设微信小程序开发
  • html5大气网站潍坊网络优化排名
  • 深圳网站制作招聘太原营销型网站建设制作
  • 网站建设陷阱企业管理咨询报告案例
  • 北京建设集团网站首页企业官网设计思路
  • 网站技术培训宁波网络推广丿易企网怎么样
  • 网站制作成功案例台州市临海建设局网站
  • 工行网站跟建设网站区别内网穿透软件哪个好
  • 陕西网站建设哪家专业六间房直播
  • 汶上网站建设哪家便宜如何做酒店网站