Bootstrap

Redis入门到精通(一),Redis简单介绍及安装

一.Redis概念

1.先说概念,Redis是什么?

Redis 是一个高性能的 开源的、C语言写的Nosql(非关系型数据库),数据保存可以存储在内存中或者磁盘中。Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

2.那什么是Nosql呢(NoSQL Databases List by Hosting Data - Updated 2022 )

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,它泛指非关系型的数据库。随着互联网2003年之后web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的交友类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

3.NOSQL分类

分类Examples举例典型应用场景数据模型优点缺点
键值(key-value)Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。Key 指向 Value 的键值对,通常用hash table来实现查找速度快数据无结构化,通常只被当作字符串或者二进制数据
列存储数据库Cassandra, HBase, Riak分布式的文件系统以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限
文档型数据库CouchDB, MongoDbWeb应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)Key-Value对应的键值对,Value为结构化数据数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构查询性能不高,而且缺乏统一的查询语法。
图形(Graph)数据库Neo4J, InfoGrid, Infinite Graph社交网络,推荐系统等。专注于构建关系图谱图结构利用图结构相关算法。比如最短路径寻址,N度关系查找等很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群


二.Redis的特点

Redis的特点就一个字:简单好用还很快!

  • 数据保存在内存,存取速度快,并发能力强,在Redis6之后支持多线程。

  • 它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型)。

  • redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。

  • 提供了多语言客户端(Java,C/C++,C#,PHP,JavaScript等)。

  • Redis支持集群(主从同步)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。

  • 支持持久化,可以将数据保存在硬盘的文件中

  • 支持订阅/发布(subscribe/publish)

  • 支持事务


三.Redis和Mysql的比较

众所周知,Mysql有很多种引擎,我们只拿Innodb来进行比较,如果想了解其他Mysql引擎的朋友可以私信我。

mysqlredis
类型关系型非关系型
存储位置磁盘磁盘和内存
存储过期不支持支持
读写性能非常高

四.Redis的使用场景

  • 缓存:作为经常被查询数据,放到读速度很快的空间(比如内存),以便下次访问减少访问磁盘次数,减轻数据库压力,从而降低访问时间。就比如:Mybatis的 二级缓存 , Ehcache框架缓存等情况。

  • 计数器:网站通常需要统计注册用户数,网站总浏览次数等等 ,新浪微博转发数、点赞数。

  • 实时防攻击系统:防止暴力破解,如使用工具不间断尝试各种密码进行登录。解决方案使用Redis记录某ip一秒访问到达10次以后自动锁定IP,30分钟后解锁

  • 设定有效期的应用:设定一个数据到一定的时间失效。比如像验证码,登录信息超时失效, 自动解锁,购物券,红包等。

  • 自动去重应用:Uniq 操作,获取某段时间所有数据去重值,这个使用 Redis 的 set 数据结构最合适了,只需要不断地将数据往 set 中扔就行了,set会自动去重。

  • 队列:构建队列系统,使用 list 可以构建队列系统,使用 sorted set 可以构建有优先级的队列系统。

  • 秒杀:通过基于Redis的内存队列及Redis的信号量隔离来实现资源隔离,通过内存处理高并发访问,来防止库存超卖问题。

  • 消息订阅系统:Pub/Sub 构建实时消息系统 Redis 的 Pub/Sub 系统可以构建实时的消息系统,比如很多用 Pub/Sub 构建的实时聊天系统的例子。如QQ群。


五.Redis的安装

1.下载和安装

1.1下载Redis

        Redis本身不支持windows,但是这么厉害的东西用不了肯定不合适,早就有前辈帮我们解决了这个问题,大家可以自行查找合适的资源

        我目前用的版本为Redis5,如果有需要的兄弟们可以留邮箱

windows环境版本下载地址:Releases · microsoftarchive/redis · GitHub

官网下载地址:Download | Redis

CRUG网站

1.2.安装Redis

        window版本解压Redis包即可用

        linux版本先关防火墙再安装C环境点点点不介绍了

1.3.Redis目录介绍

redis.window.conf    #reids配置文件
​
redis-benchmark.exe   #reids压测工具
​
redis-check-aof.exe    #aof文件校验、修复功能
​
redis-check-dump.exe    #rdb文件校验、修复功能
​
redis-cli.exe    #命令行客户端,连接Redis服务端可对Redis进行相关操作
​
redis-server.exe  #Redis服务器,启动Redis

2.Redis启动和测试

2.1.启动redis-server

进入到Redis安装目录 ,双击可以启动或者使用CMD执行

 以上就是启动成功

2.2.启动redis-client

  • 连接本机Redis直接双击 redis-cli.exe 或者执行命令

    redis-cli.exe
  • 如果连接其他服务的Redis需要跟上 -h参数

    redis-cli.exe -h ip -p 端口   #如  redis-client.exe -h 192.168.0.11 -p 6379

2.3.测试Redis

在redis-cli中操作

set key value #设置数据
​
get key #获取数据


六.Redis设置密码

1.设置密码

1.1.临时修改

  • CONFIG SET 命令可以动态地调整 Redis 服务器的配置而无须重启,重启后失效

    CONFIG SET requirepass 123456

1.2.永久修改

  • 修改配置文件 redis.widows.conf ,增加代码:

    requirepass 123456

2.登录Redis

2.1.Auth认证

  • 启动redis-cli.exe ,执行auth命令:

    auth 123456

        至此,我们Redis算是安装完成,下面几期会跟大家聊聊安装Redis可视化工具和如何操作Redis的各种数据类型,事务,发布订阅,持久化策略和淘汰策略的操作,以及我们的代码中该如何操作Redis。还望各位看官点个赞再走吧,给您劈个叉~

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;