-
NoSQL的概述
-
Redis的概述
-
Redis的安装和使用
-
Jedis的入门
-
Redis的数据类型
-
Keys的通用操作
-
Redis的特性
-
Redis的持久化
第一章 NoSQL概述
为什么需要NoSQL
-
High performance - 高并发读写
-
Huge Storage - 海量数据的高效率存储和访问
-
High Scalability && High Availablility - 高可扩展性和高可用性
NoSQL数据库的四大分类
-
键值(Key-Value)存储
-
列存储
-
文档数据库
-
图形数据库
NoSQL的特点
-
易扩展
-
灵动的数据模型
-
大数据量,高性能
-
高可用
第二章 Redis概述
Redis的由来
-
高性能键值对数据库,支持的键值数据类型:
-
字符串类型
-
列表类型
-
有序集合类型
-
散列类型
-
集合类型
Redis的应用场景
-
缓存
-
任务队列
-
网站访问统计
-
数据过期处理
-
分布式集群架构中的session分离
第三章 Resdis的安装
https://www.runoob.com/redis/redis-install.html
第四章 Jedis入门
Jedis介绍
Jedis是Reids官方首选的Java客户端开发包
https://github.com/xetorhio/jedis
第五章Redis的数据结构
Key定义的注意点
-
不要过长
-
不要过短
-
统一的命名规范
存储String
-
二进制安全的,存入和获取的数据相同
-
Value最多可以容纳的数据长度是512M
存储Sting常用命令:
赋值
set key value
取值
get key
删除
del key
数值增减
incr num //增
decr num //减
扩展命令
incrby key 5 //增5
decrby key 5 //减5
append key value 追加(相当于字符串拼接)
存储Hash
-
String key和String Value的map容器
-
每一个Hash可以存储4294967295个键值对
存储Hash常用命令:
赋值
hset key1 key value
hmset key1 key value key value
取值
hget key1 key
hmget key1 key2 key3
hgetall key
删除
hdel key1 key2 key 3
del key
添加数字
hincrby key1 key2
自学命令
hexists key1 key2 //存在返回1不存在返回0
hlen key //获取属性个数
hkeys key //获取所有key
hvals key //获取所有value
存储list
-
ArrayList使用数组方式
-
LinkedList使用双向链接方式
-
双向链表中添加数据
-
双向链表中删除数据
存储list常用命令:
两端添加
lpush key value1 value2 value3 //向左侧添加数据
rpush key value1 value2 value3 //向右侧添加数据
查看列表
lrange key start end //查看元素
两端弹出
lpop key //弹出左侧一个元素(之前的数据就没了)
rpop key //弹出右侧一个元素(之前的数据就没了)
获取列表元素个数
llen key
扩展命令
lpushx key //插入存在链表的头部添加元素,不存在不插入
rpushx key //尾部
lrem key //删除元素
存储Set
-
和List类型不同的是,Set集合中不允许出现重复的元素
-
Set可包含的最大元素数量是4294967295
存储set常用命令:
添加/删除元素
SADD key member1 [member2] //向集合添加一个或多个成员
获取集合中的元素
SCARD key // 获取集合的成员数
SMEMBERS key
返回集合中的所有成员
集合中的差集运算
SDIFF key1 [key2] //返回给定所有集合的差集
SDIFFSTORE destination key1 [key2] //返回给定所有集合的差集并存储在 destination 中
集合中的交集运算
SINTER key1 [key2] //返回给定所有集合的交集
SINTERSTORE destination key1 [key2] //返回给定所有集合的交集并存储在 destination 中
集合中的并集运算
SUNION key1 [key2] //返回所有给定集合的并集
SUNIONSTORE destination key1 [key2] //所有给定集合的并集存储在 destination 集合中
扩展命令
SISMEMBER key member //判断 member 元素是否是集合 key 的成员
SMOVE source destination member //将 member 元素从 source 集合移动到 destination 集
SPOP key //移除并返回集合中的一个随机元素
SRANDMEMBER key [count] //返回集合中一个或多个随机数
SREM key member1 [member2] //移除集合中一个或多个成员
存储Set使用场景
-
跟踪一些唯一性数据
-
用于维护数据对象直接的关联关系
存储Sorted-Set
-
Sorted-Set和Set的区别
-
Sorted-Set中的成员在集合中的位置是有序的
存储Sorted-Set常用命令:
添加元素
ZADD key score1 member1 [score2 member2] //向有序集合添加一个或多个成员,或者更新已存在成员的分数
获得元素
ZCARD key //获取有序集合的成员数
删除元素
ZREM key member [member ...] //移除有序集合中的一个或多个成
ZREMRANGEBYLEX key min max //移除有序集合中给定的字典区间的所有成员
ZREMRANGEBYRANK key start stop //移除有序集合中给定的排名区间的所有成员
ZREMRANGEBYSCORE key min max //移除有序集合中给定的分数区间的所有成员
范围查询
ZLEXCOUNT key min max //在有序集合中计算指定字典区间内成员数量
ZRANGE key start stop [WITHSCORES] //通过索引区间返回有序集合成指定区间内的成员
ZRANGEBYLEX key min max [LIMIT offset count] //通过字典区间返回有序集合的成员
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] //通过分数返回有序集合指定区间内的成员
扩展命令
ZINCRBY key increment member //有序集合中对指定成员的分数加上增量 incremen
ZSCORE key member //返回有序集中,成员的分数值
ZUNIONSTORE destination numkeys key [key ...] //计算给定的一个或多个有序集的并集,并存储在新的 key 中
Sorted-Set使用场景
-
如大型在线游戏jifen排行榜
-
构建索引数据
第六章 Keys的通用操作
Redis事务
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:
-
批量操作在发送 EXEC 命令前被放入队列缓存。
-
收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
-
在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
-
开始事务。
-
命令入队。
-
执行事务。
第七章 Redis持久化
两种持久化方式
RDB方式
RDB:每次进行快照方式会重新记录整个数据集的所有信息。RDB在恢复数据时更快,可以最大化redis性能,子进程对父进程无任何性能影响。
在RDB方式下,你有两种选择,一种是手动执行持久化数据命令来让redis进行一次数据快照,另一种则是根据你所配置的配置文件 的 策略,达到策略的某些条件时来自动持久化数据。而手动执行持久化命令,你依然有两种选择,那就是save命令和bgsave命令。
AOF方式
AOF:有序的记录了redis的命令操作。意外情况下数据丢失甚少。他不断地对aof文件添加操作日志记录
配置文件中的appendonly修改为yes。开启AOF持久化后,你所执行的每一条指令,都会被记录到appendonly.aof文件中。但事实上,并不会立即将命令写入到硬盘文件中,而是写入到硬盘缓存,在接下来的策略中,配置多久来从硬盘缓存写入到硬盘文件。所以在一定程度一定条件下,还是会有数据丢失,不过你可以大大减少数据损失。
(完)
java经验总结
java知识和技术查漏补缺,空余时间学习碎片化知识,分享开发、运维、架构等综合性知识,助力职场最后一公里与职业进阶,每天看总结,就选它。