Redis(2)--Redis的数据结构String/Hash

一、Reids数据结构介绍

1. Redis时一个key-cakye的数据库,key一般是String类型,不过value类型有很多。
eg.String Hash List Set SortedSet  (基本) | GEO BitMap HyperLog (特殊)

2.Redis为了方便学习,将操作不同类型的命令做了分组,在官网可以进行查询。

二、Reids的通用命令

通用指令是部分数据类型的,都可以使用的指令,常见的有:

1.KEYS: 查看符合模板的所有Key,不建议在生产环境设备上使用
        eg. KEYS *        KEYS a*  (模糊查询)
2.DEL: 删除 (一条或多条) 数据
3.MSET:(key value)添加多个键值对
        eg. MSET k1 v1 k2 v2 k3 v3
4.EXPIRE: 给一个key设置有效期,有效期到期后该key会被自动删除
        eg. ESPIRE age 20  (设置20s有效期)
5.TTL: 查询一个key的剩余有效期
        -1: 永久有效
        -2: 已经到期

三、String类型

1.String类型,也就是字符串类型,是Redis中最简单的存储类型。其value是字符串。不过根据字符串的格式不同,又可以分为三类:
String: 普通字符串
int: 整数类型,可以自增、自减操作
float: 浮点类型,可以做自增、自减操作
不管是那种格式,底层都是字节数组形式存储,只不过编码方式不同。字符串类型的最大空间不能超过512M。

2.String类型的常见命令

(1) SET: 添加或者修改已经存在的一个String类型的键值对
(2) GET: 根据KEYhuoqu Strring类型value
(3) MSET: 批量添加多个键值对
(4) MGET: 根据多个key获取多个String类型的value
(5) INCR: 让一个整形的key自增1
(6) INCRBY: 让一个整形的key自增并指定步长,如: incrby num 2 让num值自增2
(7) INCRBYFLOAT: 让一个浮点类型的数字自增并指定步长
(8) SETNX: 添加一个String类型的键值对,前提是这个key不存在,否则不执行(新增)
(9) SETEX: 添加一个String类型的键值对,并且指定有效期

四、Reids中Key的层级格式

1.思考Redis没有类似MySQL中的Table概念,我们该如何区分不同类型的key呢?
例如,需要存储用户、商品信息到redis,有一个用户的id为1,一个商品的id也是1。

2.Key的结构

Redis的key允许有多个单词形成层级结构,多个单词之间用":"隔开,格式如下:
项目名 :业务名 :类型 : id
这个格式非固定,也可以根据自己的需求来删除或添加词条

如果Value是一个Java对象,如一个User对象,可以将对象序列化为JSON字符串后存储:

KEY VALUE
project1:user:1 {"id": 1,"name": "张三","age": 21}
project1:product:1 {"id": 1,"name": "小米","price": 5555}

层级:project ---- user
                        |-- product
下面各自存储它们的key和value

五、Reids中的Hash类型

1.Hash类型,也叫做散列,其value是一个无序字典,类似于Java中的HashMap结构

2.String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便。

3.Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD

4.Hash类型的常见命令: (一个flied相当于一个属性,如上面表中的age)
(1) HSET key field value: 添加或者修改hash类型key的field的值
(2) HGET key field: 获取一个hash类型key的feild的值
(3) HMSET: 批量添加多个hash类型key的field的值
(4) HMGET: 批量获取多个hash类型key的field的值
(5) HGETALL: 获取一个hash类型的key的所有的field和value
(6) HKEYS: 获取一个hash类型的key的所有field
(7) HVALS: 获取一个hash类型的key中的所有value
(8) HINCRBY: 让一个hash类型的key的字段值自增并指定步长
(9) HSETNX: 添加一个hash类型的key的feild值,前提是这个field不存在,否则不执行

相关文章

文章浏览阅读1.3k次。在 Redis 中,键(Keys)是非常重要的概...
文章浏览阅读3.3k次,点赞44次,收藏88次。本篇是对单节点的...
文章浏览阅读8.4k次,点赞8次,收藏18次。Spring Boot 整合R...
文章浏览阅读978次,点赞25次,收藏21次。在Centos上安装Red...
文章浏览阅读1.2k次,点赞21次,收藏22次。Docker-Compose部...
文章浏览阅读2.2k次,点赞59次,收藏38次。合理的JedisPool资...