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

做购物类网站有哪些/医疗器械龙头股

做购物类网站有哪些,医疗器械龙头股,数据网站模板,wordpress回收站 恢复前言Redis(Remote Dictionary Server)是一个Key-value存储系统,使用C语言编写,遵守BCD协议(BCD协议提供给使用者很大自由)。Redis运行于独立的进程,通过网络协议和应用进行交互,将数据保存至内存中,提供多种方式&#…

前言

Redis(Remote Dictionary Server)是一个Key-value存储系统,使用C语言编写,遵守BCD协议(BCD协议提供给使用者很大自由)。

Redis运行于独立的进程,通过网络协议和应用进行交互,将数据保存至内存中,提供多种方式,进行数据的持久化保存。Redis具有跨服务器的水平拆分、复制的分布式特性。Redis不同于一般key-value数据库,value本身具有结构化。

数据结构

8697ec7d011c441af080ed67e03ad86d.png

Redis数据结构如上图所示。

Redis是典型的NoSql 非关系型数据库,没有传统的table结构。数据库db以编号作为定义,默认为db0。

/** * Redis 内部对象数据结构定义 */ typedef struct redisObject{    unsigned type:4;    unsigned encoding:4;    unsigned 1ru:REDIS_LRU_BITS;    int refcount;    void *ptr; } robj;

type: redis的数据结构类型,string list map set sorted-set

encoding: redis数据结构具体的实现方式,比如string可以由int、char[] 来实现

lru:表示本对象空转时间,有限内存下长期不访问对象清理

refcount: 应用计数,用于对象的垃圾回收

ptr:指的使用encoding作为实际的实现方式所在实际地址

string

redis的string类型,可以表示以下三种数据

  • 字符串

  • 整数

  • 浮点数

浮点数,限于双精度

整数、浮点数,类型的value,具有自增、自减等数字型操作,并且redis自动识别精度、值域范围,根据精度、值域自动进行类型升级

127.0.0.1:6379> set test 123OK127.0.0.1:6379> incr test(integer) 124

相关的redis命令手册,详见官方网站:https://www.redis.net.cn/order/

7805b1b603808e8a314b16e36b963bbc.png

string类型,在内存中,以字节串作为承载的,在内部以int、SDS作为结构存储。

int,存储整数型数据;SDS存放字节、浮点型数据

List

list即列表对象,用于存储string序列

主要操作如下:

RPUSH/LPUSH: 将指定的string内容添加到给定的key的开头或者结尾

127.0.0.1:6379> rpush test "nihao"(integer) 1

RPOP/LPOP:取出指定的key对应的开头或结尾

127.0.0.1:6379> Rpop test"nihao"

LINDEX: 取出指定的key的索引下标下的值

127.0.0.1:6379> del test(integer) 0127.0.0.1:6379> rpush test "123"(integer) 1127.0.0.1:6379> rpush test "456"(integer) 2127.0.0.1:6379> rpush test "12312"(integer) 3127.0.0.1:6379> lindex test 2"12312"127.0.0.1:6379> lindex test 0"123"

LRANGE: 取出指定的key范围内的值

127.0.0.1:6379> Lrange test 0 -11) "123"2) "456"3) "12312"127.0.0.1:6379> Lrange test 0 21) "123"2) "456"3) "12312"

下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

更多操作,感兴趣的可以去官网了解下。

List类型的value对象,内部以LinkedList或者ziplist实现,当list的元素个数或者单个元素长度很小时,会采用ziplist实现,否则将会使用linkedlist实现。

LinkedList是一个双向链表。ZipList采用的可变长度的压缩方法,针对值较小的整数、较短的string具有很好的压缩效果。

Map

Map又叫hash,维护的是一个hash表。维护了多个key-value ,且key不重复。

Redis本身数据结构为key-value,值也可以是key-value,但是值内的value不能再嵌套map,只能是string类型能表达的内容(整形、字节型、浮点型)。

272465305af948eb81c5aaf377871e1a.png

map类型的数值,redis提供了以上的操作实现。

HSET: 为指定的key,设置key -value值

HGET:获取指定的key的字段中key的值

127.0.0.1:6379> hset test nihao "123"(integer) 1127.0.0.1:6379> hget test nihao"123"

map在内部实现包括ziplist和hashtable两种,对于数据量比较小的,采用ziplist实现。

哈希表,在Redis中分为三个层级,由低向上:

dictEntry:管理一个key-value对,同时保留同一个桶中的相邻元素的指针

dictht:维护所有的桶链

dict:当桶链需要扩容或者缩容时,管理迁移

大致上,如图所示理解

0d5ec3da233dc5c5838d1e8b9c59d593.png

Set

类似List,是一个无序集合,元素不重复。

基本操作命令如下图所示,具体使用,照例查找官方说明

2feec73c08ad95398ca4ea4ade15e6a9.png

SADD:为指定的key,添加新的值

SMEMBERS:获取指定的key的所有值

127.0.0.1:6379> sadd test "nihaoa"(integer) 1127.0.0.1:6379> sadd test "woca"(integer) 1127.0.0.1:6379> SMEMBERS test1) "woca"2) "nihaoa"

Set在内部以intset或者hashtable来实现。对于采用hashtable实现,其中value永远为null,当set中只包含整形元素,采用intset实现。

intset核心元素是一个字节数组,从小到大有序存放set的元素。

typedef struct intset {    uint32_t encoding;    uint32_t length;    int8_t contents[];} intset;

intset,由于是有序的整型数据存储,所以采用了二分查找法进行数据的操作。

查找时间复杂度为O(log(N)),插入时间复杂度为O(N)

Sorted-set

Sorted-set 是redis 独有的数据结构,类似map是一个key-value对。但是它是一个有序的key-value对。

key:key-value中的键,在一个sorted-set中不重复

value:是一个浮点数,成为score

有序:sorted-set 内部按照score从小到大排序

b875c43f6167af2d4677e1728d0b83ff.png

ZADD: 为指定的key添加值,注意格式为 ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN

127.0.0.1:6379> zadd test 1 "nihao"(integer) 1127.0.0.1:6379> zadd test 1 "nihaoa"(integer) 1127.0.0.1:6379> zrange test 0 11) "nihao"2) "nihaoa"127.0.0.1:6379> zadd test 4 "woshishui" 3 "hahah"(integer) 2127.0.0.1:6379> zrange test 0 -11) "nihao"2) "nihaoa"3) "hahah"4) "woshishui"

Sorted-set内部以ziplist或者skiplist+hashtable实现。

感兴趣的可以多了解下,skiplist(跳表)

23eccd9cfa221c9cfca0fd3f854cfaba.gif

974bbb2cf854eb7bbe195e475d4506e8.png

http://www.jmfq.cn/news/4944277.html

相关文章:

  • 网页设计与网站建设案例教程/宁波seo基础入门
  • 设计师招聘网站有哪些/怎样制作一个自己的网站
  • 推广网站怎么建/seo优化主要工作内容
  • 珠海网站推广/郑州网络营销公司哪个好
  • 网站建设方案案例/网络营销策划方案800字
  • 网站建设长春/百度学术官网论文查重免费
  • 南昌企业做网站设计/hao123网址导航
  • 国内建网站流程/各大搜索引擎提交入口
  • 做机械的外贸网站/长沙百度关键词排名
  • 网站开发需要准备什么/网络营销推广系统
  • 公司网站建设技术/seo产品推广
  • 广东品牌网站建设平台/搜索引擎网站
  • vue.js 可以做网站吗/如何做好网络营销管理
  • 网站建站公司排名/搜狗网
  • 平台网站的建设需求/做网站设计的公司
  • 阿里服务器怎么做网站服务器吗/高级搜索
  • 网站的功能建设/龙岗网站推广
  • 珠海营销网站建设/个人网站推广
  • 组织建设是什么/网站seo排名培训
  • 车机油哪个网站做的好/it培训班
  • 长沙网上商城网站建设方案/百度数据分析工具
  • 成都 网站建设 公司/全球网站流量排名查询
  • 广西网络网站建设/推广资源网
  • 广州疫情最新动态知乎/企业站seo外包
  • 如何建设移动端网站/网站建设方案开发
  • 单页网站模板做seo/宁波 seo排名公司
  • 网站字体字号/网络广告宣传平台
  • 淘宝客建立网站/可以访问违规网站的浏览器
  • 梁山做网站价格/优化大师软件大全
  • 网站搭建素材/1000个关键词