1. Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
  1. String(字符串)
  2. string redis 最基本的类型,一个 key 对应一个 value
  3. string 类型是二进制安全的。意思是 redis string 可以包含任何数据。比如jpg图片或者序列化的对象。
  4. string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB
  5.  
  6. 命令行语法(
  7. redis > SET key value
  8.  
  9. 注意:一个键最大能存储512MB
  1. Hash(哈希)
  2. Redis hash 是一个键值(key=>value)对集合。
  3. Redis hash 是一个 string 类型的 field value 的映射表,hash 特别适合用于存储对象(简单而言类似于std::map)。
  4. 使用Redis HMSET, HGET 命令,HMSET 设置了两 field=>value 对, HGET 获取对应 field 对应的 value
  5. 每个 hash 可以存储 - 键值对(40多亿)。
  6.  
  7. 命令行语法(redis命令不区分大小写)
  8. redis> HMSET 哈希结构名 第一个元素的key 第一个元素的值value 第一个元素的key 第一个元素的值value ...
  9. redis> HGET 哈希结构名 元素的key
  10.  
  11. 示例:
  12. redis> HMSET stinfo "name" "tom" "age" --定义了一个stinfo的哈希结构体,第一个元素的key"name",第一个元素的value"tom"
  13. redis> HGET stinfo "age" --获取键是"age"的值
  1. List(列表)
  2. Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
  3. 列表最多可存储 - 元素 (, 每个列表可存储40多亿)。
  4.  
  5. 命令行语法
  6. --从头部插入一个元素
  7. redis> lpush 列表结构名 列表元素
  8. --从尾部插入一个元素
  9. redis> rpush 列表结构名 列表元素
  10. --打印列表元素(好像没有逆序打印)
  11. redis> lrange 列表结构名 起始下标(下标从0开始) 结束下标(下标可以越界)

  1. Set(集合)
  2. RedisSetstring类型的无序集合(Set集合就是不允许重复的列表)。
  3. 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O()。
  4. 如果 key 已经持有其他值,SET就覆写旧值,无视类型。
  5. 对于某个原本带有生存时间(TTL)的键来说, SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。
  6. 集合中最大的成员数为 - (, 每个集合可存储40多亿个成员)。
  7. 可选参数
  8. Redis 2.6. 版本开始, SET 命令的行为可以通过一系列参数来修改:
  9. EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value
  10. PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value
  11. NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value
  12. XX :只在键已经存在时,才对键进行设置操作。
  13. 返回值:
  14. Redis 2.6. 版本以前, SET 命令总是返回 OK
  15. Redis 2.6. 版本开始, SET 在设置操作成功完成时,才返回 OK
  16. 如果设置了 NX 或者 XX ,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)。
  17.  
  18. 命令行语法
  19. --添加一个元素,该元素无论是什么类型,存储到set中都会转化成string类型
  20. redis> sadd set结构名 元素
  21. --查看set元素列表
  22. redis> smembers set结构名
  1. zset(sorted set:有序集合)
  2. Redis zset set 一样也是string类型元素的集合,且不允许重复的成员。
  3. 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
  4. zset的成员是唯一的,但分数(score)却可以重复。
  5.  
  6. zadd 命令
  7. 添加元素到集合,元素在集合中存在则更新对应score
  8.  
  9. 命令行语法
  10. --添加元素
  11. redis> zadd zset结构体 score member
  12. --按照分数区间打印元素
  13. redis> ZRANGEBYSCORE runoob

Sword redis数据结构的更多相关文章

  1. Redis 数据结构使用场景

    转自http://get.ftqq.com/523.get 一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的 ...

  2. Redis数据结构

    Redis数据结构 Redis数据结构详解(一)   前言 Redis和Memcached最大的区别,Redis 除啦支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据 ...

  3. Redis数据结构底层知识总结

    Redis数据结构底层总结 本篇文章是基于作者黄建宏写的书Redis设计与实现而做的笔记 数据结构与对象 Redis中数据结构的底层实现包括以下对象: 对象 解释 简单动态字符串 字符串的底层实现 链 ...

  4. Redis 数据结构与内存管理策略(上)

    Redis 数据结构与内存管理策略(上) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...

  5. Redis 数据结构与内存管理策略(下)

    Redis 数据结构与内存管理策略(下) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...

  6. Redis数据结构之intset

    本文及后续文章,Redis版本均是v3.2.8 上篇文章<Redis数据结构之robj>,我们说到redis object数据结构,其有5中数据类型:OBJ_STRING,OBJ_LIST ...

  7. Redis数据结构之robj

    本文及后续文章,Redis版本均是v3.2.8 我们知道一个database内的这个映射关系是用一个dict来维护的.dict的key固定用一种数据结构来表达,这这数据结构就是动态字符串sds.而va ...

  8. Redis 数据结构之dict(2)

    本文及后续文章,Redis版本均是v3.2.8 上篇文章<Redis 数据结构之dict>,我们对dict的结构有了大致的印象.此篇文章对dict是如何维护数据结构的做个详细的理解. 老规 ...

  9. Redis 数据结构之dict

    上篇文章<Redis数据结构概述>中,了解了常用数据结构.我们知道Redis以高效的方式实现了多种数据结构,因此把Redis看做为数据结构服务器也未尝不可.研究Redis的数据结构和正确. ...

随机推荐

  1. 设置 debug 版本签名与生产版本一致

    debug 版本使用生产版本的签名 在开发过程中,app 直接跑到手机上,用的签名文件是 Android Studio 默认的自动生成的一个签名,与生产版本的 app 签名是不一样的.当接入华为推送的 ...

  2. 有关https安全的相关内容介绍

    Https 介绍什么是Https HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道.简单讲是H ...

  3. python2和Python3异同总结

    1. python3 异常不再接收逗号(,)作为参数: ## python3 中这样可以正常运行 try: print("在这里执行的代码,有异常进入except") except ...

  4. Java两种方式简单实现:爬取网页并且保存

    注:如果代码中有冗余,错误或者不规范,欢迎指正. Java简单实现:爬取网页并且保存 对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错 ...

  5. jsonrpc使用

    jsonrpc使用 1.什么是rpc RPC(Remote Procedure Call)远程过程调用,简单说就是通过网络请求服务,不需要了解底层网络技术的协议. 常用语分布式应用程序. 2.rpc数 ...

  6. c--日期和时间函数

    C的标准库<time.h>包含了一些处理时间与日期的函数. 1.clock_t clock(void); 函数返回程序自开始执行后的处理器时间,类型是clock_t,单位是tick.如果有 ...

  7. Asp.Net正则过滤一个div

    Asp.Net过滤一对标签,例如div.ul.p.li.span等 html = “html page”; Regex regPage = new Regex(@"(?is)<div\ ...

  8. 监听的instance status blocked分析

    对于处于NOMOUNT状态的数据库,PMON还没有将服务注册到监听上,这个时候服务的状态是BLOCKED的,对于来自远程的任何连接都会报ORA-12528错误.如下: [oracle@dbtest ~ ...

  9. Django 查询时间段 时间搜索 过滤

    Django 查询时间段 1.大于某个时间 gt now = datetime.datetime.now()start = now – datetime.timedelta(hours=23, min ...

  10. hdu1599(无向图的最小环模板)

    题意:杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至 ...