Redis期末复习
本文最后更新于:2023年3月23日 上午
之前的SpringBoot期末复习中多包含了Redis和SpringCloud的知识点,现在划分开来方便复习
Redis(1简答、2-3选择、4编程)
1、是什么,特点,优势
(1)是什么
- redis是一个开源的、使用C语言编写的、可基于内存也可持久化的Key-Value数据库,最常用的NoSQL数据库没有之一。
- NoSQL: not only sql 不仅仅是sql 高性能开发
- c语言开发:支持多语言 java、php、python、c#、object-c、js…..
(2)特点
- 内存数据库,速度快,也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持集群与数据备份,即master-slave模式的数据备份。
- 支持事务
(3)优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制形式的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。(事务:要么同时成功,要么同时回滚)
- 丰富的特性 – Redis还支持 publish/subscribe(发布/订阅)以实现读写分离, 通知, key 过期等等特性。
2、数据类型;String、List、Hash
(1)String
string是redis最基本的类型。一个key对应一个value。
单键 —— 单值
在以上实例中我们使用了 Redis 的 SET 和 GET 命令。键为 name,对应的值为redis.net.cn。注意:一个键最大能存储512MB。
(2)List
Redis列表是简单的字符串列表,按照插入顺序排序。你可以从头部(左边)或者尾部(右边)添加一个元素导列表。
单键——多值
常用案例:聊天系统、社交网络中获取用户最新发表的帖子、简单的消息队列、新闻的分页列表、博客的评论系统。
(3)Hash
hash 是一个键值(key=>value)对集合。
KV模式不变,但是V是一个键值对(适合用来存java中的对象数据)
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。可以避免序列化的开销和并发修改控制的问题。
以上实例中 hash 数据类型存储了包含用户脚本信息的用户对象。 实例中我们使用了 Redis HMSET, HGETALL 命令,user:1 为键值。
3、常用命令:set、get、incr、lpush、lpop、hset、hmset
set key value设置指定 key 的值[如果有键,则自动覆盖]
get key 获取指定 key 的值
del key 删除指定key
getset key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
incr key : 将键的整数值增一【只有数字才能进行加减】
decr key: 将键的整数值减少-1
INCRBY key increment 将 key 所储存的值加上给定的增量值(increment) 。
LPUSH key value1 [value2] 将一个或多个值插入到列表头部
RPUSH key value1 [value2] 在列表中添加一个或多个值
LPOP key 移出并获取列表的第一个元素
RPOP key 移除并获取列表最后一个元素
hset key field value (field相当于类的属性)将哈希表 key 中的字段 field 的值设为 value
hget key field 获取存储在哈希表中指定字段的值
hmset key field1 value1 [field2 value2 ]同时将多个 field-value (域-值)对设置到哈希表 key 中。
hmget key field1[field2] 获取所有给定哈希字段的值
4、基于jedis驱动的java redis API
1 |
|