Redis 是一个 key-value 存储系统,但是它的 value 值不仅仅可以存储字符串,value 共有 五种 数据结构类型,具体如下:

数据结构类型

结构类型 结构存储的值 结构的读写能力
STRING 可以是字符串、整数或者浮点数 另有自增、自减操作
LIST 一个链表,每个节点包含一个字符串  
SET 包含无序、不重复的字符串 可计算交、并、差集,可随机获取元素
HASH 包含键值对的无序散列表  
ZSET 字符串(键)与分值(值-浮点数)之间的有序(按分值)映射 可根据分值或成员获取元素

一些简单的操作:

字符串 STRING 操作:GET、SET、DEL

# 使用 redis-cli
127.0.0.1:> set hello wordl
OK
127.0.0.1:> get hello
"wordl"
127.0.0.1:> del hello
(integer)
127.0.0.1:> get hello
(nil)

列表 LIST 操作:LPUSH、RPUSH、LPOP、RPOP、LINDEX、LRANGE

# 在列表右侧添加元素
127.0.0.1:> rpush list-key item
(integer)
127.0.0.1:> rpush list-key item2
(integer)
127.0.0.1:> rpush list-key item
(integer)
# 获取列表所有元素(索引 - 表示最后一个元素索引)
127.0.0.1:> lrange list-key -
) "item"
) "item2"
) "item"
# 获取指定索引的元素(从 开始)
127.0.0.1:> lindex list-key
"item2"
# 从左侧弹出一个元素
127.0.0.1:> lpop list-key
"item"
127.0.0.1:> lrange list-key -
) "item2"
) "item"

集合 SET 操作:SADD、SREM、SISMEMBER、SMEMBERS、SINTER、SUNION、SDIFF

127.0.0.1:> sadd set-key item
(integer)
127.0.0.1:> sadd set-key item2
(integer)
127.0.0.1:> sadd set-key item3
(integer)
# 无法添加重复元素
127.0.0.1:> sadd set-key item
(integer)
# 获取 SET 中的所有元素
127.0.0.1:> smembers set-key
) "item"
) "item3"
) "item2"
# 判断元素是否在 SET 中
127.0.0.1:> sismember set-key item4
(integer)
127.0.0.1:> sismember set-key item
(integer)
127.0.0.1:> srem set-key item2
(integer)
127.0.0.1:> smembers set-key
) "item"
) "item3"
# 删除 SET 中的指定元素
127.0.0.1:> srem set-key item2
(integer)

哈希 HASH 操作:HSET、HGET、HGETALL、HDEL

127.0.0.1:> hset hash-key sub-key1 value1
(integer)
127.0.0.1:> hset hash-key sub-key2 value2
(integer)
# 无法添加重复的 key, 添加后会覆盖之前的 value 值
127.0.0.1:> hset hash-key sub-key1 value1
(integer)
# 获取所有的 key, value
127.0.0.1:> hgetall hash-key
) "sub-key1"
) "value1"
) "sub-key2"
) "value2"
# 删除指定的 key 的键值对
127.0.0.1:> hdel hash-key sub-key2
(integer)
127.0.0.1:> hdel hash-key sub-key2
(integer)
127.0.0.1:> hdel hash-key sub-key1
(integer)
127.0.0.1:> hgetall hash-key
(empty list or set)

有序集合 ZSET 操作:ZADD、ZRANGE、ZRANGEBYSCORE、ZREM

# 添加元素 memebers,并指定其 分值 为
127.0.0.1:> zadd zset-key memeber1
(integer)
127.0.0.1:> zadd zset-key member0
(integer)
127.0.0.1:> zadd zset-key member0
(integer)
# 获取指定范围的元素(元素按照 分值 升序排列)
127.0.0.1:> zrange zset-key - withscores
) "memeber1"
) ""
) "member0"
) ""
127.0.0.1:> zrange zset-key -
) "memeber1"
) "member0"
# 获取在指定分值范围内的元素
127.0.0.1:> zrangebyscore zset-key withscores
) "memeber1"
) ""
# 删除指定成员的元素
127.0.0.1:> zrem zset-key memeber1
(integer)
127.0.0.1:> zrem zset-key member1
(integer)
127.0.0.1:> zrange zset-key - withscores
) "member0"
) ""

附:Redis 命令参考 http://redisdoc.com/

Redis 笔记(一)——数据类型简介的更多相关文章

  1. redis安装及数据类型简介(string、list、set、sorted_set、hash)

    一:简介: redis国内最大的案例--->新浪微博 memcache:是key-value数据库 数据类型:只支持key value数据 过期策略:支持 持久化:不支持(可以通过三方程序) 主 ...

  2. 「Redis 笔记」数据类型

    REmote DIctionary Server(Redis),一个 key-value 存储系统. 数据类型 Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表) ...

  3. Redis API与常用数据类型简介

    Redis API与常用数据类型简介 一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些 ...

  4. Redis数据类型简介(十分钟快速学习Redis)

    如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...

  5. NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

    一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...

  6. 【转】NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

    一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...

  7. redis笔记之一

    NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中.而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要 ...

  8. redis中各种数据类型对应的jedis操作命令

    redis中各种数据类型对应的jedis操作命令 一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 ...

  9. redis笔记总结之redis介绍

    一.Redis介绍: redis的发展历史简单的理解为因为使用类似MySql这类关系型数据库不方便进而开发的开源的.轻量级的.非关系型的,直到现在一直不断完善的一款NoSql数据库.具体的介绍大家可以 ...

  10. Redis(三)--- Redis的五大数据类型的底层实现

    1.简介 Redis的五大数据类型也称五大数据对象:前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisObject:这个对象系统包 ...

随机推荐

  1. video标签加载视频有声音却黑屏

    问题 昨天用户上传了一个视频文件,然而发现虽然有声音但是黑屏. 解释 因为原视频的编码是用 mp4v 格式的,它需要专用的解码器.而 chrome 并不支持,所以无法播放. 然后如果用转码功能转成用 ...

  2. R自带数据集

    向量 euro    #欧元汇率,长度为11,每个元素都有命名landmasses    #48个陆地的面积,每个都有命名precip   #长度为70的命名向量rivers   #北美141条河流长 ...

  3. C语言程序设计(十) 字符串

    第十章 字符串 字符串常量是由一对双引号括起来的一个字符串序列 字符串实际就是由若干个有效数字构成且以字符'\0'作为结束的一个字符序列 C语言没有提供字符串数据类型,因此字符串的存取要用字符型数组来 ...

  4. Core + Vue 后台管理基础框架4——前端授权

    1.前言 上篇,我们讲了后端的授权.与后端不同,前端主要是通过功能入口如菜单.按钮的显隐来控制授权的.具体来讲,就是根据指定用户的制定权限来加载对应侧边栏菜单和页面内的功能按钮.我们一个个来讲. 2. ...

  5. 2016 Multi-University Training Contest 4 T9

    http://acm.hdu.edu.cn/showproblem.php?pid=5772 最大权闭合子图. 得到价值w[i][j]的条件是选了i,j这两个位置的字符.选择位置的i字符花费为 第一次 ...

  6. 问不倒的HTTP协议

    一.HTTP简介 1.HTTP HTTP:超文本传输协议,是一种通信协议:允许超文本标记文档从Web服务器传送到客户端的浏览器中. 简单:传输html文件的协议. Web:是一种基于超文本和HTML的 ...

  7. Natas22 Writeup(header重定向、burp截取抓包)

    Natas22: 打开页面是一个空白页面,查看源码,看起来好像是需要我们在url中添加“revelio”参数即可,然而实验了之后发现浏览器跳转回了原来的页面. 再次仔细审计源码,会看到页面开头有一个重 ...

  8. thinkphp5.0.*命令执行批量脚本

    import requests import Queue import threading import time user_agent = "Mozilla/5.0 (Windows NT ...

  9. 洛谷1063 +区间dp(经典问题)

    题目网址:https://www.luogu.com.cn/problem/P1063 题意大致是:给定一个序列An,第i个元组表示为(Ai,Ai+1),序列位置不变,当合并一个区间[l,l+1]时开 ...

  10. 第九周Java实验作业

    实验九 异常.断言与日志 实验时间 2018-10-25 1.实验目的与要求 (1) 掌握java异常处理技术: Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. Ja ...