Redis入门

 

  • 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 //增5decrby key 5 //减5append key value 追加(相当于字符串拼接)

 

存储Hash

  • String key和String Value的map容器

  • 每一个Hash可以存储4294967295个键值对

 

存储Hash常用命令:

赋值​​​​​​​

hset key1 key valuehmset key1 key value key value

取值​​​​​​​

hget key1 keyhmget key1 key2 key3 hgetall key

删除​​​​​​​

hdel key1 key2 key 3del key

添加数字

hincrby key1 key2

自学命令​​​​​​​

hexists key1 key2 //存在返回1不存在返回0hlen key //获取属性个数hkeys key //获取所有keyhvals 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 //有序集合中对指定成员的分数加上增量 incremenZSCORE 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知识和技术查漏补缺,空余时间学习碎片化知识,分享开发、运维、架构等综合性知识,助力职场最后一公里与职业进阶,每天看总结,就选它。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值