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. 数组去重--hash方法

    hash方法我以前百度找到的,经常用性能好速度快,本文章主要是一步步解释hash方法的过程(其实没多少步) 在这里就能看出每个自定义下标都是独一无二的,其实就相当于数组arr已经去重了 剩下我们就需要 ...

  2. vue的computed计算属性

    computed可定义一些函数,这些函数叫做[计算属性] 只要data里面的数据发生变化computed会同步改变 引用[计算属性]时不要加  () ,应当普通属性使用 例:console.log(t ...

  3. 爬虫之requestsku

    想用selenium实现B站自动登录已经点赞等功能,看到如何解决滑动解锁有关爬虫的内容,便开始学习爬虫,没过多久又想把记录自己生活的网站做起来,朋友便推荐了layui框架倒腾了一晚上自我觉得是做后台系 ...

  4. php制作缩略图

    PHP制作缩略图 1.制作缩略图的函数 imagecopyresampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh) 说明: dest 目标画布 src 原图(要缩略的图片 ...

  5. const 详解

    ​ 简单分类:          常变量        const 类型 变量名  或者   类型 const  变量名          常引用        const 类型& 引用名   ...

  6. Hadoop集群搭建(四)~centos6.8关闭防火墙

    一.centos关闭防火墙 1,关闭防火墙.service iptables stop 2,关闭防火墙开机自启.chkconfig iptables off 3,查看防火墙状态.service ipt ...

  7. consoleInfo 输出 数组套对象 不显示...的方法 序列化 再反序列化

    consoleInfo (...args) { // console.info('this', this) const name = this.$options.name let outName = ...

  8. java第二节课课后

    动手动脑问题 : 程序源代码: //MethodOverload.java //Using overloaded methods public class MethodOverload { publi ...

  9. Arch Linux安装配置-双系统(1)

    Arch Linux启动盘准备: 在Windows下安装Win32 Disk Imager,打开页面,点击Download即可! 安装配置 1.选择我同意 2.选择安装位置路径 3.打勾,在桌面显示图 ...

  10. swagger 报 i.s.m.parameters.AbstractSerializableParameter - Illegal DefaultValue null for parameter type integer java.lang.NumberFormatException: For input string

    解决 方法 添加这两个依赖....别问我有啥子用....我也不知道..能解决问题 <dependency> <groupId>io.swagger</groupId> ...