Redis数据类型

Redis支持5种数据类型,它们描述如下:

Strings - 字符串

字符串是 Redis 最基本的数据类型。Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串可以包含任意类型的数据,一个字符串最大为 512M 字节。

1 redis 127.0.0.1:6379> SET name "hello"
2 OK
3 redis 127.0.0.1:6379> GET name
4 "hello"

列表 (Lists)

Redis 列表仅仅是按照插入顺序排序的字符串列表。可以添加一个元素到 Redis 列表的头部 (左边) 或者尾部 (右边)。

LPUSH 命令用于插入一个元素到列表的头部,RPUSH 命令用于插入一个元素到列表的尾部。当这两个命令操作在一个不存在的键时,将会创建一个新的列表。同样,如果一个操作会清空列表,那么该键将会从键空间 (key space) 移除。这些是非常方便的语义,因为列表命令如果使用不存在的键作为参数,就会表现得像命令运行在一个空列表上一样。

 1 redis 127.0.0.1:6379> lpush listtest test1
 2 (integer) 1
 3 redis 127.0.0.1:6379> lpush listtest test2
 4 (integer) 2
 5 redis 127.0.0.1:6379> lpush listtest test3
 6 (integer) 3
 7 redis 127.0.0.1:6379> lrange listtest 0 -1
 8
 9 1 "test1"
10 2 "test2"
11 3 "test3"

集合 (Sets)

Redis 集合是没有顺序的字符串集合 (collection)。可以在 O(1) 的时间复杂度添加、删除和测试元素存在与否 (不管集合中有多少元素都是常量时间)。

Redis 集合具有你需要的不允许重复成员的性质。多次加入同一个元素到集合也只会有一个拷贝在其中。实际上,这意味着加入一个元素到集合中并不需要检查元素是否已存在。

Redis 集合非常有意思的是,支持很多服务器端的命令,可以在很短的时间内和已经存在的集合一起计算并集,交集和差集。

redis 127.0.0.1:6379> sadd setdemo set1
(integer) 1
redis 127.0.0.1:6379> sadd setdemo set2
(integer) 1
redis 127.0.0.1:6379> smembers setdemo1) "set1"
2) "set2"

Hashes - 哈希值

Redis的哈希键值对的集合。 Redis的哈希值是字符串字段和字符串值之间的映射,所以它们被用来表示对象。

redis 127.0.0.1:6379> HMSET user:1 username testname password 123456
OK
redis 127.0.0.1:6379> HGETALL user:11) "testname"
2) "123456"

有序集合 (Sorted sets)

Redis 有序集合和 Redis 集合类似,是非重复字符串集合 (collection)。不同的是,每一个有序集合的成员都有一个关联的分数 (score),用于按照分数高低排序。尽管成员是唯一的,但是分数是可以重复的。

对有序集合我们可以通过很快速的方式添加,删除和更新元素 (在和元素数量的对数成正比的时间内)。由于元素是有序的而无需事后排序,你可以通过分数或者排名 (位置) 很快地来获取一个范围内的元素。访问有序集合的中间元素也是很快的,所以你可以使用有序集合作为一个无重复元素,快速访问你想要的一切的聪明列表:有序的元素,快速的存在性测试,快速的访问中间元素!

总之,有序集合可以在很好的性能下,做很多别的数据库无法模拟的事情。

redis 127.0.0.1:6379> zadd list 0 name1
(integer) 1
redis 127.0.0.1:6379> zadd list 0 name2
(integer) 1
redis 127.0.0.1:6379> ZRANGEBYSCORE list 0 10001) "name1"
2) "name2"

转载于:https://www.cnblogs.com/houziwty/p/5105955.html

Redis学习笔记1-Redis数据类型相关推荐

  1. StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用

    StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 原文: StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 Connec ...

  2. zset获取指定score_redis zset更新score redis学习笔记5 - Redis - 服务器之家

    redis zset更新score redis学习笔记5 发布时间:2017-04-03 来源:服务器之家 一:概述 zset全称为sorted-sets类型,和set数据类型有极为相似,都是字符串的 ...

  3. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  4. redis学习笔记(三)--Redis的功能

    慢查询 基本概念 慢查询日志记录命令执行前后的超时的执行时间.(只记录命令执行时间) 慢查询的两个配置 Redis提供了slowlog-log-slower-than和slowlog-max-len两 ...

  5. Redis学习笔记之Redis的对象

    类型与编码: typedef struct redisObject {                unsigned type:4://类型               unsigned encod ...

  6. Redis学习笔记 - 数据类型与API(1)Key

    Redis学习笔记 - 数据类型与API(1)Key Key相关命令 1. 常用命令 命令 含义 时间复杂度 keys 查找所有符合给定模式 pattern 的 key O(N), N 为数据库中 k ...

  7. Redis学习笔记(一) 数据类型事务异常Jredis

    Redis学习笔记(一) NoSql概述 Nosql四大分类 Redis入门 简介 Windows安装 基础使用 问题 Redis4.0之前为什么是单线程 单线程为什么这么快 Redis4.0后的多线 ...

  8. Redis学习笔记——SpringDataRedis的使用

    与Spring集成 我需要哪些jar包? <dependency><groupId>org.springframework.data</groupId><ar ...

  9. Redis学习笔记1-理论篇

    目录 1,Redis 数据类型的底层结构 1.1,Redis 中的数据类型 1.2,全局哈希表 1.3,数据类型的底层结构 1.4,哈希冲突 1.5,rehash 操作 2,Redis 的 IO 模型 ...

  10. Redis学习笔记(B站狂神说)(自己总结方便复习)

    Redis学习笔记B站狂神说 redis: 非关系型数据库 一.NoSQL概述 1.为什么要用Nosql 1.单机Mysql的年代 思考一下,这种情况下:整个网站的瓶颈是什么? 1.数据量如果太大,一 ...

最新文章

  1. 用NVIDIA-NGC对BERT进行训练和微调
  2. RDKit | 删除方差低的描述符
  3. python编程题-100道Python编程题及答案(一)
  4. Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一
  5. 图形驱动程序和显卡驱动什么区别_什么是核心显卡,核心显卡和集成显卡的区别...
  6. 如果我使用Docker,是否需要OpenStack?
  7. linux ip不设置网关,linux下ip与网关不在同一段配置
  8. linux启动redis指定端口,linux redis实现自定义运行多端口、多实例 | 极安全-JiSec
  9. WPF学习笔记-用Expression Design制作矢量图然后导出为XAML
  10. cadence元件编号更新_OrCAD教程:如何对元件进行替换与更新
  11. python如何用xpath爬取指定内容_Python如何利用Xpath选择器爬取京东网商品信息
  12. PLSQL developer的使用
  13. Python地理数据处理 十三:栅格数据处理(一)
  14. 前端 debugger
  15. 5W2H分析法的学习笔记
  16. VOIP 语音视频通话 ---总述
  17. https://是什么?HTTPS和HTTP有什么不一样?如何申请SSL(HTTPS)证书?
  18. 网管软件 LANDesk的配置(视频配截图)
  19. mysql排序的四种方式
  20. Python第三方库安装——使用vscode、pycharm安装Python第三方库

热门文章

  1. 使用javascript打开模态对话框
  2. http --- 共享加密(对称加密)的几个概念
  3. 面试时,面试官到底在考察什么?
  4. PLSQL DBMS_DDL.ANALYZE_OBJECT
  5. 无限“递归”的python程序
  6. saltstack 基础入门文档
  7. Windows 7 镜像制作过程
  8. Drawing绘图halcon算子,持续更新
  9. halcon 3D Object Model 三维物体模型算子,持续更新
  10. 四、极大似然参数估计