关系型数据库
MySQL、SQL Server、Oracle、postgre SQL(pg)
数据存储位置:硬盘
数据存储结构:行和列
优点:可以实现更复杂的业务逻辑(事务、存储过程、索引)、持久化
保存哪种类型的数据:所有
非关系型数据库(NoSQL)
redis、mongoDB
数据存储位置:内存
数据存储结构:键值对
优点:读写速度快
保存哪种类型的数据:1.查询频繁 且 数据一致性要求低
2.缓存的对象信息
使用redis
1.双击redis-server.exe,将出现的窗口最小化
2.测试连接:win+r=》cmd
进入保存redis的目录下
3.下载Another-Redis-Desktop-Manager使用redis
redis常用命令
SELECT index | 选择指定下标的数据库,redis默认数据库从DB0-DB15 |
---|---|
DBSIZE | 当前库中key的个数 |
KEYS * | 查看所有key的列表 |
EXPIRE key seconds | 设置key的过期时间,单位秒 |
DEL key | 删除key |
EXISTS key | 检查指定key是否存在 |
TYPE key | 返回key的存储类型 |
RENAME key newkey | 重命名key |
RENAMENX key newkey | 仅当 newkey 不存在时,将 key 改名为 newkey |
FLUSHDB | 清空当前数据库 |
FLUSHALL | 清空所有数据库 |
redis数据类型
1 String字符串
SET key value | 赋值,设置key的值 |
---|---|
SETNX key value | 只有在key不存在时,设置 key 的值(可用来做分布式锁) |
SETEX key seconds value | 设置kv键值对,并设置失效时间 (以秒为单位) |
APPEND key value | 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾 |
GET key | 取值,获取key的值 |
2 Hash哈希表
Redis的hash 是一个 string 类型的 field(字段) 和 value 的映射表,
hash 特别适合用于存储对象,类似于java里面的Map<String, Object>
HSET key field value | 将哈希表key中的字段field的值设为value |
---|---|
HMSET key field1 v1 field2 v2 | 给哈希表key中添加多个字段(field-value) |
HSETNX key field value | 只有在字段 field不存在时,设置哈希表字段的值 |
HKEYS key | 获取哈希表中的所有字段 |
HVALS key | 获取哈希表中的所有值 |
HMGET key field1 field2 | 获取所有指定字段的值 |
HLEN key | 获取哈希表中字段的数量 |
HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在 |
HDEL key field1 field2 | 删除一个或多个哈希表字段 |
3 List列表
Redis列表是简单的字符串列表,按照插入顺序排序。
你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
他的底层实现是个链表,链表可以两端双向插入。
一个列表最多可以包含 232-1 个元素(42,9496,7295)
LINDEX key index | 通过索引获取列表中的元素 |
---|---|
LLEN key | 获取列表长度 |
LPUSH key value1 value2 | 将一个或多个值插入到列表头部,如果列表不存在则创建 |
LPUSHX key value | 将一个值插入到已存在的列表头部 |
LRANGE key start stop | 获取列表指定范围内的元素,包括开始位置和结束位置的元素 |
LREM key count value | 移除列表元素,count移除元素的个数,从列表头开始 |
LSET key index value | 通过索引设置列表元素的值,如果列表不存在则报错 |
LTRIM key start stop | 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 |
RPOP key | 移除列表的最后一个元素,返回值为移除的元素。 |
RPUSH key value1 value2 | 在列表中添加一个或多个值 |
RPUSHX key value | 为已存在的列表添加值 |
4 Set集合
Redis 的 Set 是 String 类型的无序集合,集合成员是唯一的,Set集合中的元素无序不可重复。
SADD key v1 [v2] | 向集合添加一个或多个字符串,如果集合不存在则创建集合 |
---|---|
SCARD key | 获取集合的成员数 |
SISMEMBER key member | 判断 member 元素是否是集合 key 的成员 |
SMEMBERS key | 返回集合中的所有成员 |
SREM key member1 [member2] | 移除集合中一个或多个成员 |
SSCAN key cursor MATCH [pattern] [COUNT] | 迭代集合:#从索引1开始查询2个能够匹配a的字段 SSCAN set1 1 match a count 2 |
5 Sorted Set有序集合zset
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
sorted set中的元素有序不可重复。
有序集合的成员是唯一的,但分数(score)却可以重复。
ZADD key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已存在成员的分数,score 分数,member 成员 |
---|---|
ZCARD key | 获取有序集合的成员数 |
ZRANK key member | 返回有序集合中指定成员的索引 |
ZREM key member [member ...] | 移除有序集合中的一个或多个成员 |
ZSCORE key member | 返回有序集中,成员的分数值 |
ZSCAN key cursor MATCH [pattern] [COUNT ] | 迭代有序集合中的元素(包括元素成员和元素分值) |
8-4 jedis
1.pom.xml注入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.3</version>
</dependency>
2.application.yml配置
# redis
redis:
host: 127.0.0.1
port: 6379
db: 2 #数据库索引
标签:day49,redis,元素,数据类型,value,列表,key,集合
From: https://www.cnblogs.com/xiaoto9426/p/16968958.html