关于java:Redis2020最新简易图文教程上内含学习视频

5次阅读

共计 3378 个字符,预计需要花费 9 分钟才能阅读完成。

Redis 学习指标

Redis 的介绍及装置

Redis 是什么?

Redis 是一个开源(BSD 许可)的,内存 中的数据结构存储系统,它能够用作 数据库、缓存和消息中间件 。它反对多种类型的数据结构,如 字符串(strings) 散列(hashes)列表(lists)汇合(sets)有序汇合(sorted sets) 与范畴查问,bitmaps,hyperloglogs 和 天文空间(geospatial)索引半径查问。Redis 内置了复制(replication),LUA 脚本(Lua scripting),LRU 驱动事件(LRU eviction),事务(transactions)和不同级别的 磁盘长久化(persistence),并通过Redis 哨兵(Sentinel) 和主动分区(Cluster)提供高可用性(high availability)

性能

上面是官网的 bench-mark 数据:

测试实现了 50 个并发执行 100000 个申请。

设置和获取的值是一个 256 字节字符串。

后果: 读的速度是 110000 次 /s, 写的速度是 81000 次 /s

Redis 历史简介

2008 年,意大利一家守业公司 Merzia 的创始人 Salvatore Sanfilippo 为了防止 MySQL 的低性能,亲自定做一个数据库,并于 2009 年开发实现,这个就是 Redis。

从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。

从 2013 年 5 月开始,Redis 的开发由 Pivotal 资助。

​ 阐明:Pivotal 公司是由 EMC 和 VMware 联结成立的一家新公司Pivotal 心愿为新一代的利用提供一个原生的根底,建设在具备领导力的云和网络公司一直转型的 IT 个性之上。Pivotal 的使命是推广这些翻新,提供给企业 IT 架构师和独立软件提供商。

反对语言

反对的数据类型

stringhashlistsetsorted set

装置

下载地址

http://redis.io/

上传至服务器

解压
tar zxvf redis-5.0.3.tar.gz
装置依赖
yum -y install gcc-c++ autoconf automake

预编译

切换到解压目录

cd redis-5.0.3/
make

装置

创立装置目录

mkdir -p /usr/local/redis

不应用:make install(make install 默认装置到 /usr/local/bin 目录下)

应用:如果须要指定装置门路,须要增加 PREFIX 参数

make PREFIX=/usr/local/redis/ install

装置胜利如图

Redis-cli: 客户端

Redis-server: 服务器端

启动

装置的默认指标门路:/usr/local/redis/bin

启动

./redis-server

默认为前台启动,批改为后盾启动

复制 redis.conf 至装置门路下

cp redis.conf /usr/local/redis/bin/

批改装置门路下的 redis.conf,将 daemonize 批改为 yes

启动时,指定配置文件门路即可

通过 windows 客户端拜访

装置 Redis 客户端

建设连贯 -> 失败

批改配置文件 redis.conf

正文掉 bind 127.0.0.1 能够使所有的 ip 拜访 redis,若是想指定多个 ip 拜访,但并不是全副的 ip 拜访,能够 bind 设置

敞开保护模式,批改为 no

增加拜访认证

批改后 kill -9 XXXX 杀死 redis 过程,重启 redis

再次建设连贯 -> 胜利

咱们能够批改默认数据库的数量 默认 16

批改 database 32 则默认为 32 个数据库

批改后 kill -9 XXXX 杀死 redis 过程,重启 redis 即可看到成果

关系型数据库与非关系型数据库

关系型数据库

采纳关系模型来组织数据的数据库,关系模型就是二维表格模型。一张二维表的表名就是关系,二维表中的一行就是一条记录,二维表中的一列就是一个字段。

长处

  • 容易了解
  • 使用方便,通用的 sql 语言
  • 易于保护,丰盛的完整性 (实体完整性、参照完整性和用户定义的完整性) 大大降低了数据冗余和数据不统一的概率

毛病

  • 磁盘 I / O 是并发的瓶颈
  • 海量数据查问效率低
  • 横向扩大艰难,无奈简略的通过增加硬件和服务节点来扩大性能和负载能力,当须要对数据库进行降级和扩大时,须要停机保护和数据迁徙
  • 多表的关联查问以及简单的数据分析类型的简单 sql 查问,性能欠佳。因为要保障 acid,必须依照三范式设计。

数据库

Orcale,Sql Server,MySql,DB2

非关系型数据库

非关系型,分布式,个别不保障遵循 ACID 准则的数据存储系统。键值对存储,构造不固定。

长处

  • 依据须要增加字段,不须要多表联查。仅需 id 取出对应的 value
  • 实用于 SNS(社会化网络服务软件。比方 facebook,微博)
  • 严格上讲不是一种数据库,而是一种数据结构化存储办法的汇合

毛病

  • 只适宜存储一些较为简单的数据
  • 不适合简单查问的数据
  • 不适合长久存储海量数据

数据库

  • K-V:Redis,Memcache
  • 文档:MongoDB
  • 搜寻:Elasticsearch,Solr
  • 可扩展性分布式:HBase

比拟

内容 关系型数据库 非关系型数据库
老本 有些须要免费(Orcale) 根本都是开源
查问数据 存贮存于硬盘中,速度慢 数据存于缓存中,速度快
存储格局 只反对根底类型 K-V, 文档,图片等
扩展性 有多表查问机制,扩大艰难 数据之间没有耦合,容易扩大
持久性 实用长久存储,海量存储 不实用长久存储,海量存储
数据一致性 事务能力强,强调数据的强一致性 事务能力弱,强调数据的最终一致性

Redis-cli 操作 Redis

Redis-cli 连贯 Redis

-h: 用于指定 ip

-p: 用于指定端口

-a: 用于指定认证明码

PING 命令返回 PONG

指定 database

Redis-cli 操作 Redis

操作 String

set: 增加一条 String 类型数据

get: 获取一条 String 类型数据

mset: 增加多条 String 类型数据

mget: 获取多条 String 类型数据

操作 hash

hset: 增加一条 hash 类型数据

hget: 获取一条 hash 类型数据

hmset: 增加多条 hash 类型数据

hmget: 获取多条 hash 类型数据

hgetAll: 获取指定所有 hash 类型数据

hdel: 删除指定 hash 类型数据(一条或多条)

操作 list

lpush: 左增加(头)list 类型数据

rpush: 右增加 (尾) 类型数据

lrange: 获取 list 类型数据 start 起始下标 end 完结下标 蕴含关系

llen: 获取条数

lrem: 删除列表中几个指定 list 类型数据

操作 set

sadd: 增加 set 类型数据

smembers: 获取 set 类型数据

scard: 获取条数

srem: 删除数据

操作 sorted set

sorted set 是通过分数值来进行排序的,分数值越大,越靠后。

zadd: 增加 sorted set 类型数据

zrange: 获取 sorted set 类型数据

zcard: 获取条数

zrem: 删除数据

zadd 须要将 Float 或者 Double 类型分数值参数,搁置在值参数之前

Redis 中以层级关系、目录模式存储数据

设置 key 的生效工夫

Redis 有四个不同的命令能够用于设置键的生存工夫 (键能够存在多久) 或过期工夫(键什么时候会被删除) :

EXPlRE <key> <ttl> : 用于将键 key 的生存工夫设置为 ttl 秒。

PEXPIRE <key> <ttl>: 用于将键 key 的生存工夫设置为ttl 毫秒。

EXPIREAT <key> < timestamp>: 用于将键 key 的过期工夫设置为 timestamp 所指定的秒数工夫戳。

PEXPIREAT <key> < timestamp > : 用于将键 key 的过期工夫设置为 timestamp 所指定的毫秒数工夫戳。

TTL: 获取的值为 - 1 阐明此 key 没有设置有效期,当值为 - 2 时证实过了有效期。

办法一

办法二

办法三

第一个参数:key

第二个参数:value

第三个参数:NX是不存在时才 set,XX是存在时才 set

第四个参数:EX是秒,PX是毫秒

删除

del: 用于删除数据(通用,实用于所有数据类型)

hdel: 用于删除 hash 类型数据

tips: 命令为 java 中办法名,参数:去除括号,引号,将逗号变空格即可

zadd 须要将 Float 或者 Double 类型参数,搁置在值参数之前


Redis 学习视频!!!

正文完
 0