Redis是一种键值(key-Value)数据库,相对于关系型数据库,它也被叫作非关系型数据库

Redis中,键的数据类型是字符串,但是为了非富数据存储方式,方便开发者使用,值的数据类型有很多

字符串 (string)

这种数据类型非常简单,对应到数据结构里面,就是字符串

列表 (list)

支持存储一组数据,这种数据类型对应两种方式,一种是压缩列表,另一种是双向循环链表

## 压缩列表
  • 列表中保存的单个数据小于64字节
  • 列表数据个数少于512个



    比较省内存,支持不同类型数据的存储

    链表

Reis的双向链表额外定义了一个list结构体,来组织链表的首、尾指针,还有长度等信息

字典 (hash)

存储一组数据对。每个数据对又包含键值两部分,实现方式压缩列表散列表

## 压缩列表
  • 字典中保存的键和值的大小都要小于64字节
  • 字典中键值对的个数要小于512个

    散列表

使用 MurmurHash2运行速度快、随机性好的哈希算法作为哈希函数,对于哈希冲突问题,Redis使用链表法来解决。除此之外,

Redis还支持散列表的动态扩容、缩容。

  • 装载因子 > 1 -->扩大2倍
  • 装载因子 <0.1 -->缩小2倍

集合 (set)

集合用来存储一组不重复的数据,也有两种实现,一种是有序数组,一种是散列表

## 有序数组

  • 存储的数据都是整数。
  • 存储的数据元素个数不超过512个。

有序集合 (sortedset)

存储一组数据,并且每个数据会附带一个得分。通过得分的大小,将数据组织成跳表这样的数据结构,以支持快速地按照得分值、得分区间获取数据

最新文章

  1. Dreamweaver 扩展开发:文档路径等信息的处理
  2. [资料分享]nutch视频教程
  3. StringBuffer and StringBuilder
  4. ViewPager部分源码分析三:scroll
  5. MVC Model数据验证
  6. Linux下删除空文件,删除指定大小的文件
  7. 串行通讯之Qt
  8. centos7命令
  9. 组合vs继承
  10. eclipse中Build Path-Add to Build Path相应到androidstudio的设置
  11. hdu 2222 Keywords Search ac自己主动机
  12. 扩展欧几里德 POJ 1061
  13. apache本地多域配置(wampserver本地多域配置)
  14. java--反射和注解
  15. 4.1、Libgdx的生命周期
  16. [LeetCode&amp;Python] Problem 118. Pascal&#39;s Triangle
  17. Jmeter如何提取响应头部的JSESSIONID
  18. char *s 与 char s[ ]的区别
  19. LayaBox IDE 安装后执行项目报错解决方案的一些记录
  20. react native 之 事件监听 和 回调函数

热门文章

  1. java application.properties 密码加密
  2. Selenium在IE浏览器中执行脚本时输入字符太慢问题解决方法
  3. swift MT报文解析处理
  4. Eclipse 新建.jsp页面后,页面头部标签报错的解决方法
  5. Python 入门 之 反射
  6. spark教程(六)-Python 编程与 spark-submit 命令
  7. Lock Puzzle CodeForces - 936C (构造)
  8. Webpack loaderUtils.parseQuery()
  9. 使用python的selenium库刷超星网课
  10. Nginx如何配置反向代理