快速学习Redis系列(入门)

目录

1. Redis是什么?

2.Redis的优点缺点

3.应用场景

4.安装和使用

Redis设置密码

5.支持的数据类型


 

1. Redis是什么?

Redis是一个用ANSI C语言编写的,遵循BSD协议,并基于内存的一个高性能key-value数据库

 

2.Redis的优点缺点

相对于其它key-value产品的优点:

1)支持数据库的持久化,可以把内存中的数据存入磁盘中,重启可加载使用

2)支持丰富的数据类型,不仅支持简单的key-value类型的数据,还支持如String,Hash,set,list,zset(sorted set)  

3)支持数据备份,可以建master/slave集群,就能让数据同步

更多的优点:

1)以内存作为数据存储介质,读速度110000次/s,写速度81000次/s,性能高

2)操作具有原子性,也就是支持简单的事务

3)支持pub/sub的消息订阅

 

缺点:

1)Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高只能5-6W QPS/s(平常1-2W左右)

2)虽然支持简单的事务,但应用场景少,不够成熟

3)Redis在使用String类型上消耗内存较多,可以用hash表压缩存储,降低消耗。

4)Memcache和redis都是key-value类型的,不适合在不用的数据集之间建立关系,也不适合搜索查询,比如redis的keys pattern这种匹配操作,对redis的性能是灾难。

 

3.应用场景

适合很多语言,也适合很多场景,比较适合读操作频繁的程序

1.做热点数据的缓存,适合经常用来被查,不经常修改或删除的数据,如一个小说网站,每天有100W人访问某部小说中的某篇文章,这篇文章若是从数据库那拿,每天都要消耗100W次数据库请求,这样很消耗数据库资源,若把这篇文章放入redis,数据库资源消耗小,性能高

 

2.计数器,统计网站点击数,因为单线程,可以避免并发,而且性能高。

命令:INCRBY

 

3. 消息中间件或发布与订阅

和ActivitiMQ,RocketMQ类似,做消息队列,但不推荐

消息中间件主要就是为了削峰和解耦,和异步处理业务

 

4. 位操作,大量数据的处理,若有几10亿的用户,查询哪个用户在线,就不能每个用户都建一个Key来存,这样占用内存巨大,可以用位操作setbit,getbit,bitcount等命令

原理是:

redis内构建一个足够长的数组,每个数组元素只能是0和1两个值,然后这个数组的下标index用来表示我们上面例子里面的用户id(必须是数字哈),那么很显然,这个几亿长的大数组就能通过下标和元素值(0和1)来构建一个记忆系统,上面我说的几个场景也就能够实现。用到的命令是:setbit、getbit、bitcount

 

5. 重复请求的记录或秒杀系统

可以用来限制一段时间内数据的重复提交,如你要做限购商品的功能,规定一个IP当天只能买10次,一个用户名当天只能买5次,把买的次数数据记录下来,然后设置有效时间,超过次数的不准买.

 

6.分布式会话

集群模式下,在应用不多的情况下一般使用容器自带的session复制功能就能满足,当应用增多相对复杂的系统中,一般都会搭建以Redis等内存数据库为中心的session服务,session不再由容器管理,而是由session服务及内存数据库管理。

 

7.分布式锁

  在很多互联网公司中都使用了分布式技术,分布式技术带来的技术挑战是对同一个资源的并发访问,如全局ID、减库存、秒杀等场景,并发量不大的场景可以使用数据库的悲观锁、乐观锁来实现,但在并发量高的场合中,利用数据库锁来控制资源的并发访问是不太理想的,大大影响了数据库的性能。可以利用Redis的setnx功能来编写分布式的锁,如果设置返回1说明获取锁成功,否则获取锁失败,实际应用中要考虑的细节要更多。

 

8.最新列表

Redis列表结构,LPUSH可以在列表头部插入一个内容ID作为关键字,LTRIM可用来限制列表的数量,这样列表永远为N个ID,无需查询最新的列表,直接根据ID去到对应的内容页即可。

 

也可用在秒杀系统,记录商品库存,卖掉一次就在Redis减库存,因为Redis的操作是原子性的.

 

4.安装和使用

Window 下安装:

下载地址:https://github.com/MSOpenTech/redis/releases

Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。



 

进入redis,输入redis-server.ext redis.windows.conf启动服务器

 

 

然后再开个cmd,进入redis文件夹,输入redis-cli.exe -h 127.0.0.1 -p 6379

 

这时可以设置key-value,

Set hhm helloworld

OK

Get hhm

‘helloworld’

 

把redis放到后台中运行:

1. 进入cmd命令窗口

2. 进入redis的安装目录

3. 输入:redis-server --service-install redis.windows.conf --loglevel verbose ( 安装redis服务 )

4.  输入:redis-server --service-start ( 启动服务 )

5. 输入:redis-server --service-stop (停止服务)

 

Redis设置密码:



 

输入CONFIG get requirepass看下是否有设置密码

没有则输入CONFIG set requirepass “123456”

设置了密码后,连接redis服务就要先密码验证,

有2种验证密码方法:



 

redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456 (连接redis时输入密码验证)

 



 

AUTH 123456 (连接redis前没输入密码的话,连接后可以用AUTH)

 

若没验证密码就开始操作数据库,则会返回“(error) NOAUTH Authentication required.”,因为没有权限。

 

 

5.支持的数据类型

Redis支持五种String,Hash,Set,List,Sorted Set

Redis的3.2.0版本后加了叫GEO的数据类型来表示地理位置

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值