一、什么是Redis
Redis 是一个高性能的 开源的、C语言写的Nosql(非关系型数据库),数据保存可以存储在内存中或者磁盘中。Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
1、Redis的特点
数据保存在内存,存取速度快,并发能力强
它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型)。
redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。
提供了Java,C/C++,C#,PHP,JavaScript等客户端,使用很方便。
Redis支持集群(主从同步)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
支持持久化,可以将数据保存在硬盘的文件中
支持订阅/发布(subscribe/publish)
支持事务
2、Redis和Mysql的比较
mysql | redis | |
类型 | 关系型 | 非关系型 |
存储位置 | 磁盘 | 磁盘和内存 |
存储过期 | 不支持 | 支持 |
读写性能 | 低 | 非常高 |
3、Redis的使用场景
- 缓存:经常查询数据,放到读速度很快的空间(内存),以便下次访问减少时间。减轻数据库压力,减少访问时间.而redis就是存放在内存中的。就如同:Mybatis 二级缓存 , ehcache框架 缓存。
- 计数器:网站通常需要统计注册用户数,网站总浏览次数等等 ,新浪微博转发数、点赞数。
- 实时防攻击系统:防止暴力破解,如使用工具不间断尝试各种密码进行登录。解决方案使用Redis记录某ip一秒访问到达10次以后自动锁定IP,30分钟后解锁
- 设定有效期的应用:设定一个数据,到一定的时间失效。验证码,登录过期, 自动解锁,购物券,红包。
- 自动去重应用:Uniq 操作,获取某段时间所有数据排重值 这个使用 Redis 的 set 数据结构最合适了,只需要不断地将数据往 set 中扔就行了,set 意为 集合,所以会自动排重。
- 队列:构建队列系统 使用 list 可以构建队列系统,使用 sorted set 甚至可以构建有优先级的队列系统。
- 秒杀:可以把名额放到内存队列(redis),内存就能处理高并发访问。
- 消息订阅系统:Pub/Sub 构建实时消息系统 Redis 的 Pub/Sub 系统可以构建实时的消息系统,比如很多用 Pub/Sub 构建的实时聊天系统 的例子。如QQ群
二、Redis的安装
1、下载Redis
http://redis.io/download ; http://redis.cn/
2、安装Redis
本文演示的是window版本,解压Redis包即可
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
4、Redis启动和测试
4.1、启动redis-server
#进入到Redis安装目录 使用CMD执行
redis-server.exe redis.window.conf
4.2、启动redis-client
redis-client是Redis客户端,可以通过它来连接服务端操作Redis
- 连接本机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
- 测试Redis
set name shuju #设置数据
get name shuju #获取数据
5、redis设置密码
- 通过命令动态调整密码 不推荐
CONFIG SET 命令可以动态地调整 Redis 服务器的配置而无须重启,重启后失效
CONFIG SET requirepass 123123 //将密码设置为123123
CONFIG SET requirepass "" //清除密码
AUTH 123123 //输入密码进行认证
- 通过配置文件设置密码
在配置文件redis.widows.conf中增加一行代码
requirepass 123123
将密码123123设置到配置文件中,redis启动时加载该文件,即可启用密码
重新启动