不同于MySQL的表结构所带来的复杂语句,Redis只需要维护好它的【key-value】结构就可以,因此相比于MySQL,语句非常简单。

今天介绍一下Redis 五种常用的数据类型:

这五种数据类型对应五种【key-value】结构:分别是String\Hash\List\Set\SorceSet

字符串类型String

  • 1.String类型既可以保存普通文字,也可以保存序列化的二进制数据
  • 2.最大可以存储512M数据,一般足够我们使用

字符串类型语句

1.【SET KEY_NAME VALUE】本条语句用于创建一个字符串类型的数据,如果key已经存储了其他值,SET就覆盖旧值。

2.【GET KEY_NAME】本条语句用于查看数据内容,如果 key 不存在,返回 null 。如果key 储存的值不是字符串类型,返回一个错误。

3.【GETRANGE KEY_NAME INDEX1 INDEX2】本条语句用于查看某个范围内的数据内容,截取范围由start和end两个转换量决定(包括start和end在内)。

4.【STRLEN KEY_NAME】本条语句用于获得数据的长度,当密钥存储的不是字符串值时,返回一个错误。

5.【DEL KEY_NAME】本条语句用于删除数据

6.【SETEX KEY_NAME TIME VALUE】本条语句用于设置具有生命周期的数据,数据在经过一段时间后自动销毁,单位是秒

7.【MSET KEY_NAME_1  VALUE  KEY_NAME_2  VALUE……】本条语句用于创建多条数据

8.【MGET KEY_NAME KEY_NAME_1 KEY_NAME_2】本条语句用于查看多条数据

9.【APPEND KEY_NAME VALUE】本条语句用于在某条数据后面追加内容

10.【INCR num 】数字自增加1,注意:针对的是整数

11.【INCRBY】数字自增加任意整数,注意:针对的是整数

12.【INCRBYFLOAT 】数字自增加任意小数

13.【DECR 】数字自减少1,注意:针对的是整数

14.【DECRBY 】数字自减少任意整数5,注意:针对的是整数

15.【注意:没有DECRBYFLOAT 这种语法,但是可以通过INCRBYFLOAT 增加一个负数变通实现】

哈希数据类型Hash

  • Hash类型用于保存字典类型的数据

哈希类型语句

1.【HSET KEY_NAME key value】设置哈希字段

2.【HGET KEY_NAME key】查看哈希字段值

3.【HMSET KEY_NAME key_1 value key_2 value】设置多个哈希字段

4.【HMGET KEY_NAME key_1 key_2】查看多个哈希字段值

5.【HGETALL KEY_NAME】查看哈希字典中所有的key和value

6.【HKEYS KEY_NAME】查看所有哈希字段key

7.【HVALS KEY_NAME】查看所有哈希字段值value

8.【HLEN】查看所有哈希字段数量

9.【HEXISTS KEY_NAME key】判断哈希字典中是否存在某个字段key

9.【HINCRBY】让某个哈希字段的值加上指定的整数

10.【HINCRBYFLOAT】让某个哈希字段的值加上指定的小数

列表数据类型List

  • list类型可以用于保存序列化数据

列表类型语句

1.【LPUSH】如果列表不存在,则创建一个列表并从左向右向里添加数据

2.【RPUSH】如果列表不存在,则创建一个列表并从右向左向里添加数据

3.【LRANGE】查看列表中某个范围内的数据(0  -1  表示从第0个到最后一个)

4.【LINSERT BEFORE/AFTER】在某个位置插入元素

5.【LSET key index value】替换列表中的某个数据

6.【LLEN】获得列表长度

7.【LINDEX】获得列表中某个索引下的元素

8.【LPOP】删除列表中最左边的元素,并返回该元素

9.【RPOP】删除列表中最右边的元素,并返回该元素

10.【LREM】删除列表中的某个元素

集合数据类型Set

  • 如果要保存的数据不允许重复,可以使用集合类型

集合类型语句

1.【SADD KEY_NAME VALUE】

Redis Sadd命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合键不存在,则创建一个只包含添加的元素作成员的集合。当集合键不是集合类型时,返回一个错误。

2.【SMEMBERS】查看集合中的所有数据

3.【SCARD】获得集合长度

4.【SISMEMBER】判断是否含有某个元素

5.【SREM】删除元素

6.【SPOP】随机删除集合中某个元素,并返回该元素

7.【SRANDMEMBER】随机返回某个元素

有序集合数据类型ZSet

  • 有序集合是带有排序功能的集合,Redis可以根据分数值对元素进行排序

有序集合类型语句

1.【ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN】

Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误。

2.【ZINCRBY KEY_NAME INCREMENT MEMBER】

Zincrby命令对有序集合中指定成员的分数附加增量,可以通过传递一个负数值增量,当key不存在,或分数不是key的成员时,ZINCRBY key递增成员等效于ZADD key递增成员。当key不是有序集类型时,返回一个错误。分数值可以是整数值或双精度浮点数。

3.【ZREVRANGE KEY_NAME start  stop】

返回指定区间内的成员,按照分数值进行降序排列,具有相同分数值的成员按字典序的逆序(reverse lexicographical order)排列。

4.【ZCARD】获得有序集合的长度

5.【ZCOUNT】查询某个分数区间内的元素数量

6.【ZSCORE】查询某个元素的分数值

7.【ZRANGE KEY_NAME start  stop [withscores]】查询某个范围内的集合元素,升序

8.【ZREVRANGE KEY_NAME start  stop [withscores]】查询某个范围内的集合元素,降序

9.【ZRANGEBYSCORE】获得分数值区间内的元素,升序

10.【ZREVRANGESCORE】获得分数值区间内的元素,降序

11.【ZREM】删除有序集合中的元素

12.【ZREMRANGEBYRANK】删除排名区间内的元素

13.【ZREMRANGEBYSCORE】删除分数值区间内的元素

That`s all !

【快速掌握】Redis 的五种数据类型的更多相关文章

  1. Redis: Redis支持五种数据类型

    ylbtech-Redis: Redis支持五种数据类型 Redis支持五种数据类型:string(字符串) ,hash(哈希),list(列表),set(集合)及zset(sorted set:有序 ...

  2. Redis的五种数据类型的简单介绍和使用

    1.准备工作: 1.1在Linux下安装Redis  https://www.cnblogs.com/dddyyy/p/9763098.html 1.2启动Redis 先把root/redis的red ...

  3. redis的五种数据类型及应用场景

    前言 redis是用键值对的形式来保存数据,键类型只能是String,但是值类型可以有String.List.Hash.Set.Sorted Set五种,来满足不同场景的特定需求. 本博客中的示例不是 ...

  4. [Redis]Redis的五种数据类型与键值/服务器相关命令

    -------------------------------------------------------------------------------------- String(字符串):最 ...

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

    ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行Redis的一系列操作,对于一个整个应用 ...

  6. Redis的五种数据类型及方法

    字符串string: 字符串类型是Redis中最为基础的数据存储类型,是一个由字节组成的序列,他在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据货Json对象描 ...

  7. Redis的五种数据类型

    官方的几篇很好的文章: https://redis.io/topics/data-types https://redis.io/topics/data-types-intro https://redi ...

  8. Redis:五种数据类型的简单增删改查

    Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...

  9. Redis探索之路(四):Redis的五种数据类型Set和ZSet

    一:Set无需集合 Set是个集合,string类型的无需集合,通过hash table实现,添加删除查找复杂度都是0(1).对集合我们可以取并集,交集和差集.通过这些操作我们可以实现sns中的好友推 ...

随机推荐

  1. linux环境变量 shell变量 command not found解决方法(转)

    在Ubuntu.centos中有如下几个文件可以设置环境变量1./etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文 ...

  2. 关于SANGFOR AC记录上网记录

    1.查看加密APP的访问记录,不支持推送证书的方式.也就是这种的是没办法查看到的:2.查看加密网站的访问记录,通过推送证书,电脑可以查看到:手机端安卓的不能,苹果可以,但是不建议做,适用性不好:3.查 ...

  3. gVerify验证码

    1.引入js文件 2.实现 <%-- Created by IntelliJ IDEA. User: a Date: 2019/8/28 Time: 10:31 To change this t ...

  4. 【洛谷 p3372】模板-线段树 1(数据结构--线段树)

    题目:已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x:2.求出某区间每一个数的和. 解法:如题,模版题.需要加上 lazy 标记,也就是我的 upd.lazy 标记的思路就是对一个结 ...

  5. Codeforces Round #649 (Div. 2) A. XXXXX

    题目链接:https://codeforces.com/contest/1364/problem/A 题意 找出大小为 $n$ 的数组 $a$ 的最长连续子数组,其元素和不被 $x$ 整除. 题解 如 ...

  6. Berry Jam (前缀和)cf教育场

    距离上一篇博客又2个月了 寻思着该除除草了 教育场是真的好难 可能是因为我还是只菜鸡 哭唧唧 先说下题意:有2*n罐果酱,草莓和蓝莓,梯子在中间从梯子那开始往两边吃(可以一会左一会右),问最少吃多少果 ...

  7. 2020杭电多校 C / HDU 6879 - Mine Sweeper

    题意: t组输入,每组输入一个s 你需要输出一个r行c列的阵列,这个阵列中'X'代表炸弹,'.'表示没有炸弹 对于'.'这些位置都会有一个数值,这个值取决于这个位置附近8个位置,这8个位置一共有几个炸 ...

  8. Gym 100796K Profact

    Alice is bored out of her mind by her math classes. She craves for something much more exciting. Tha ...

  9. Educational DP Contest F - LCS (LCS输出路径)

    题意:有两个字符串,求他们的最长公共子序列并输出. 题解:首先跑个LCS记录一下dp数组,然后根据dp数组来反着还原路径,只有当两个位置的字符相同时才输出. 代码: char s[N],t[N]; i ...

  10. c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变

    c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件 ...