一、简介

作为一款key-value 的NoSQL数据库,Redis支持的数据结构比较丰富,有:String(字符串) 、List(列表) 、Set(集合) 、Hash(哈希) 、Zset(有序集合),相对于其他四种数据结构,Zset 是Redis独有的数据结构,作为有序的集合来使用还是十分方便的,下面我来介绍这集中数据结构:

数据类型 描述
set 无序、不重复的字符串集合
list 字符串链表
string 字符串、整型、浮点型
hash key和value都是无序的hashtable
zset 字符串集合,每个字符串映射到一个浮点数分数,按照分数来排序

redis 各种数据结构的操作方法很多,下面大概列出来大部分方法,大家可以使用 redis-cli 来练习这些方法 :

二、string

序号     方法 描述
 1

SET key value

设置指定 key 的值

 2

GET key

获取指定 key 的值

 3

GETRANGE key start end

返回 key 中字符串值的子字符

 4

GETSET key value

将给定 key 的值设为 value ,并返回 key 的旧值(old value)

 5

GETBIT key offset

对 key 所储存的字符串值,获取指定偏移量上的位(bit)

 6

MGET key1 [key2..]

获取所有(一个或多个)给定 key 的值

 7

SETBIT key offset value

对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)

 8

SETEX key seconds value

将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)

 9

SETNX key value

只有在 key 不存在时设置 key 的值

 10

SETRANGE key offset value

用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始

11 

STRLEN key

返回 key 所储存的字符串值的长度

12 

MSET key value [key value ...]

同时设置一个或多个 key-value 对

13 

MSETNX key value [key value ...]

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在

14 

PSETEX key milliseconds value

这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位

15 

INCR key

将 key 中储存的数字值增一

16 

INCRBY key increment

将 key 所储存的值加上给定的增量值(increment)

17 

INCRBYFLOAT key increment

将 key 所储存的值加上给定的浮点增量值(increment)

 18

DECR key

将 key 中储存的数字值减一

 19

DECRBY key decrement

key 所储存的值减去给定的减量值(decrement)

 20

APPEND key value

如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾

三、set

序号  方法 描述
1

SADD key member1 [member2]

向集合添加一个或多个成员

2

SCARD key

获取集合的成员数

3

SDIFF key1 [key2]

返回给定所有集合的差集

4

SDIFFSTORE destination key1 [key2]

返回给定所有集合的差集并存储在 destination 中

5

SINTER key1 [key2]

返回给定所有集合的交集

6

SINTERSTORE destination key1 [key2]

返回给定所有集合的交集并存储在 destination 中

7

SISMEMBER key member

判断 member 元素是否是集合 key 的成员

8

SMEMBERS key

返回集合中的所有成员

9

SMOVE source destination member

将 member 元素从 source 集合移动到 destination 集合

10

SPOP key

移除并返回集合中的一个随机元素

11

SRANDMEMBER key [count]

返回集合中一个或多个随机数

12

SREM key member1 [member2]

移除集合中一个或多个成员

13

SUNION key1 [key2]

返回所有给定集合的并集

14

SUNIONSTORE destination key1 [key2]

所有给定集合的并集存储在 destination 集合中

15

SSCAN key cursor [MATCH pattern] [COUNT count]

迭代集合中的元素

四、list

序号          方法 描述
1

BLPOP key1 [key2 ] timeout

移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

2

BRPOP key1 [key2 ] timeout

移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

3

BRPOPLPUSH source destination timeout

从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现

可弹出元素为止

4

LINDEX key index

 通过索引获取列表中的元素
5

LINSERT key BEFORE|AFTER pivot value

 在列表的元素前或者后插入元素
6

LLEN key

 获取列表长度
7

LPOP key

 移出并获取列表的第一个元素
8

LPUSH key value1 [value2]

 将一个或多个值插入到列表头部
9

LPUSHX key value

 将一个值插入到已存在的列表头部
10

LRANGE key start stop

 获取列表指定范围内的元素
11

LREM key count value

 移除列表元素
12

LSET key index value

 通过索引设置列表元素的值
13

LTRIM key start stop

 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
14

RPOP key

 移除并获取列表最后一个元素
15

RPOPLPUSH source destination

 移除列表的最后一个元素,并将该元素添加到另一个列表并返回
16

RPUSH key value1 [value2]

 在列表中添加一个或多个值
17

RPUSHX key value

 为已存在的列表添加值

五、hash

序号   方法 描述
1

HDEL key field1 [field2]

删除一个或多个哈希表字段

2

HEXISTS key field

查看哈希表 key 中,指定的字段是否存在

3

HGET key field

获取存储在哈希表中指定字段的值

4

HGETALL key

获取在哈希表中指定 key 的所有字段和值

5

HINCRBY key field increment

为哈希表 key 中的指定字段的整数值加上增量 increment

6

HINCRBYFLOAT key field increment

为哈希表 key 中的指定字段的浮点数值加上增量 increment

7

HKEYS key

获取所有哈希表中的字段

8

HLEN key

获取哈希表中字段的数量

9

HMGET key field1 [field2]

获取所有给定字段的值

10

HMSET key field1 value1 [field2 value2 ]

同时将多个 field-value (域-值)对设置到哈希表 key 中

11

HSET key field value

将哈希表 key 中的字段 field 的值设为 value

12

HSETNX key field value

只有在字段 field 不存在时,设置哈希表字段的值

13

HVALS key

获取哈希表中所有值

14

HSCAN key cursor [MATCH pattern] [COUNT count]

迭代哈希表中的键值对

六、zset

序号   方法 描述
1

ZADD key score1 member1 [score2 member2]

向有序集合添加一个或多个成员,或者更新已存在成员的分数

2

ZCARD key

获取有序集合的成员数

3

ZCOUNT key min max

计算在有序集合中指定区间分数的成员数

4

ZINCRBY key increment member

有序集合中对指定成员的分数加上增量 increment

5

ZINTERSTORE destination numkeys key [key ...]

计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中

6

ZLEXCOUNT key min max

在有序集合中计算指定字典区间内成员数量

7

ZRANGE key start stop [WITHSCORES]

通过索引区间返回有序集合成指定区间内的成员

8

ZRANGEBYLEX key min max [LIMIT offset count]

通过字典区间返回有序集合的成员

9

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]

通过分数返回有序集合指定区间内的成员

10

ZRANK key member

返回有序集合中指定成员的索引

11

ZREM key member [member ...]

移除有序集合中的一个或多个成员

12

ZREMRANGEBYLEX key min max

移除有序集合中给定的字典区间的所有成员

13

ZREMRANGEBYRANK key start stop

移除有序集合中给定的排名区间的所有成员

14

ZREMRANGEBYSCORE key min max

移除有序集合中给定的分数区间的所有成员

15

ZREVRANGE key start stop [WITHSCORES]

返回有序集中指定区间内的成员,通过索引,分数从高到底

16

ZREVRANGEBYSCORE key max min [WITHSCORES]

返回有序集中指定分数区间内的成员,分数从高到低排序

17

ZREVRANK key member

返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

18

ZSCORE key member

返回有序集中,成员的分数值

19

ZUNIONSTORE destination numkeys key [key ...]

计算给定的一个或多个有序集的并集,并存储在新的 key 中

20

ZSCAN key cursor [MATCH pattern] [COUNT count]

迭代有序集合中的元素(包括元素成员和元素分值)

官网文档地址: https://redis.io/commands

Redis学习——数据结构介绍(四)的更多相关文章

  1. Redis学习01——介绍与搭建环境

    Redis学习01介绍与搭建环境一简介二yum配置已经配置了的可以跳过三安装gcc四安装redis1 上传Redis到linux中2 解压到usrlocal下3 编译redis4 安装redis5 拷 ...

  2. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  3. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  4. Redis 底层数据结构介绍

    Redis 底层数据结构 版本:2.9 支持的数据类型: 字符串 散列 列表 集合 有序集合 字符串 Redis 利用原生的 c 字符串进行了一次封装.封装的字符串叫做简单动态字符串:SDS(simp ...

  5. Redis学习笔记(4)——Redis五大数据结构介绍以及应用场景

    出处:https://www.jianshu.com/p/f09480c05e42 Redis是典型的Key-Value类型数据库,Key为字符类型,Value的类型常用的为五种类型:String.H ...

  6. Redis学习笔记(四)——数据结构之List

    一.介绍 Redis列表(List)是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(left)或者尾部(right),一个列表最多可以包含232-1个元素(4294967295, ...

  7. Redis学习——数据结构下

    4.集合(集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素.) 1.命令 .集合内操作 1.添加元素 ...

  8. 【转】Redis学习笔记(四)如何用Redis实现分布式锁(1)—— 单机版

    原文地址:http://bridgeforyou.cn/2018/09/01/Redis-Dsitributed-Lock-1/ 为什么要使用分布式锁 这个问题,可以分为两个问题来回答: 为什么要使用 ...

  9. Redis 学习笔记(四)RDB 和 AOF 持久化机制

    一.Redis 持久化简介 Redis 的持久化功能是区别于 Memcached 显著特性,数据持久化可以保证系统在发生宕机和重启后数据不会丢失,对于 redis 这种存储在内存中的数据库显得尤为重要 ...

随机推荐

  1. 【C语言编程练习】5.12 兔子产仔问题

    1. 题目要求 把一对新生的兔子关在屋子里,已知一对两个月大的兔子以后买一个月可以生一对小兔子,而这一对心生的小兔子初生两个月以后才可以生小兔子,假如一年内没有死亡,一年可以繁殖成多少对? 2. 题目 ...

  2. Pandas 0 数据结构Series

    # -*- encoding:utf-8 -*- # Copyright (c) 2015 Shiye Inc. # All rights reserved. # # Author: ldq < ...

  3. 通过命令行操作MYSQL的方法 以及导入大的SQL备份文件

    运行  输入CMD 进入 命令行窗口 输入Mysql.exe的路径  如:c:/wamp/bin/mysql.exe  回车 这时出现 welcome to the mysql ...的提示  进入成 ...

  4. LDAP & Implementation

    LDAP & Implementation 一.什么是LDAP? (一)在介绍什么是LDAP之前,我们先来复习一个东西:“什么是目录服务?” 1. 目录服务是一个特殊的数据库,用来保存描述性的 ...

  5. python学习:字符串

    字符串 #字符串操作# 对应操作:# 1.重复输出字符串# print('hello'*2)# 2.[],[:]通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表#print('h ...

  6. Java之hashCode的作用和equals方法的重构规则

    这个是博主对hashcode的初步理解,以后加深了会再来更新: 1.hashcode是什么? hashcode是对象的散列码,不同的对象几乎不一样,说几乎是因为还是可以一样的. 特点:每一个对象都有h ...

  7. 201771010126 王燕《面向对象程序设计(Java)》第十三周学习总结

    实验十三  图形界面事件处理技术 实验时间 2018-11-22 1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: 事件源 (eventevent eventeventsource s ...

  8. 连接Redis_五种数据格式

    前面我们已经准备成功开启Redis服务,其端口号为6379,接下来我们就看看如何使用C#语言来操作Redis.就如MongoDB一样,要操作Redis服务,自然就需要下载C#的客户端,这里通过Nuge ...

  9. C#线程的使用(1)

    今天刚开始学习使用线程,把学习过程与新的记录下来. 创建线程: 非常简单,只需声明她并为其提供线程起始点处的方法委托即可: 终止线程: 使用Abort和Join方法来实现: Abort方法:用于永久的 ...

  10. python语法_模块_loggin_hashlib_conifgparser

    loggin模块 日志模块,级别从上往下依次增强,debug 和 info 默认不输出信息,只有后三种级别有输出信息 loggin.debug('') loggin.info('') loggin.w ...