Redis 的五大数据类型
Redis一般是不在Windows系统中操作,但是对于零基础的学习者来说,windows版的Redis能上手更快,之后还会出适用于企业级开发的Linux版Redis教程。
在学习Redis时,首先得在Windows中进行安装。
1. Redis的Windows版安装使用
下载地址 : https://github.com/MSOpenTech/redis/tags
下载解压后可以直接使用

核心文件 :
- redis-server.exe 服务启动命令
- redis-cli.exe 客户端启动
- redis.windows.conf redis核心配置文件
- redis-benchmark.exe 性能测试工具
- redis-check-aof.exe AOF文件修复工具
- redis-check-dump.exe RDB文件修复工具
进入Redis的安装目录cmd启动Redis服务器和客户端 :

服务端启动 :

端口(Port) : 6379
PID : 随机产生
客户端连接:

在介绍Redis的五大数据类型之前,先要懂得一些基本操作
2. Redis的基本操作
信息添加
信息查询
- 功能 : 根据key查询出对应的value,如果不存在,则返回空(nil)
- 命令 :
清屏命令
退出客户端命令
帮助命令
- 获取命令帮助文档,获取组中所有命令信息名称
- 命令 :
3. Redis五大数据类型
Redis的五大数据类型分别是 :
- string
- hash
- list
- set
- sorted_set
3.1 string
redis数据存储格式
- redis 就相当于一个Map,采用的是key : value 的形式存储数据。
- 数据类型指的是存储的数据的类型,也就是value部分的类型,而key永远都是字符串。

3.1.1 string 类型数据的基本操作
或
1
| mset key1 value1 key2 value2 ...
|
3.1.2 string 类型数据的拓展操作
1 2 3
| incr key incrby key increment incrbyfloat key increment
|
1 2
| decr key decrby key increment
|
1 2
| setex key seconds value psetex key milliseconds value
|
3.1.3 string 类型数据操作的注意事项
数据操作不成功的反馈与数据正常操作之间的差异
① 表示运行结果是否成功
- (integer) 0 —> false 失败
- (integer) 1 —> true 成功
② 表示运行结果值
- (integer) 3 —> 3 3个
- (integer) 1 —> 1 1个
数据没获取到
(nil) ,相当于null
数据最大存储量
512MB
3.1.4 Key的设置约定
数据库中的key命名惯例 :
表名 : 主键名 : 主键值 : 字段名
eg : order : id : xxxxx : name
3.2 hash
存储结构 : 一个存储空间保存多个键值对数据
hash类型 : 底层使用哈希表结构实现数据存储
图例 :

3.2.1 hash类型数据的基本操作
1 2
| hget key field hgetall key
|
1
| hdel key field1 [field2]
|
或
1
| hmset key field1 value1 field2 value2 ...
|
1
| hmget key field1 field2 ...
|
3.2.2 hash类型数据的拓展操作
1 2
| hincrby key field increment hincrbyfloat key field increment
|
3.3 list
存储结构 : 一个存储空间保存多个数据,且,通过数据可以体现出进入顺序。
list类型 : 保存多个数据,底层使用双向链表存储结构实现

list数据类型图例 :

3.3.1 list类型数据的基本操作
1 2
| lpush key value1 [value2] ... rpush key value1 [value2] ...
|
1 2 3
| lrange key start stop lindex key index llen key
|
3.3.2 list类型数据的拓展操作
1 2 3
| blpop key1 [key2] timeout brpop key1 [key2] timeout brpoplpush source desination timeout
|
3.4 set
set类型 : 与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的。

3.4.1 set类型数据的基本操作
1
| sadd key member1 [member2]
|
1
| srem key member1 [member2]
|
3.4.2 set类型数据的拓展操作
1 2 3
| sinter key1 [key2] sunion key1 [key2] sdiff key1 [key2]
|
1 2 3
| sinterstore destination key1 [key2] sunionstore destination key1 [key2] sdiffstore destination key1 [key2]
|
1
| smove source destination member
|
3.5 sorted_set
sorted_set类型 : 在set的存储结构基础上添加可排序字段
图示 :

3.5.1 sorted_set 类型数据的基本操作
1
| zadd key score1 member1 [score2 member2]
|
1 2
| zrange key start stop [WITHSCORES] zrevrange key start stop [WITHSCORES]
|
1
| zrem key member [member ...]
|
1 2
| zrangebyscore key min max [WITHSCORES] [LIMIT] zrevrangebyscore key max min [WITHSCORES]
|
1 2
| zremrangebyrank key start stop zremrangebyscore key min max
|
注意:
1 2
| zcard key zcount key min max
|
1 2
| zinterstore destination numkeys key [key ...] zunionstore destination numkeys key [key ...]
|
3.5.2 sorted_set类型数据的拓展操作
1 2
| zrank key member zrevrank key member
|
1 2
| zscore key member zincrby key increment member
|