初识Redis

一.关于Redis

  1. redis是什么
  2. redis的特性
  3. redis的应用场景
  4. redis单机安装及使用

二.Redis是什么

  • redis是一个基于键值的存储服务系统
  • 开源(可以自己学习源代码,可以做个性化定制)
  • 支持多种数据结构
  • 高性能/性能丰富

三.Redis特性

1.速度快

官方给出的是10w OPS,也就是每秒可以实现十万次读写.redis速度快的原因首先是将数据存在内存当中的,服务器中内存的读取速度是非常快的.其次它是使用c 语言(5000行代码)实现的,我们知道语言是离操作系统较近的的一门语言.合理的使用,是可以达到很好的效果,而且redis代码受到了业界广泛的认可,因此它的速度快还是要取决于它的代码写的好.最后是redis的线程模式是单线程的.

2.持久化

我们知道redis是将所有的数据保存在内存当中,但是内存是不具有持久化的特性,在我们的服务断电的时候,就无法对数据进行恢复,redis正式考虑到了这一方面,于是提供了持久化的功能,因此redis会对数据的更新进行异步的保存到磁盘上.这样的持久化方式有RDB/AOF这两种.

3.数据结构

基于 key-value 键值对的数据结构服务器。全称 Remote Dictionary Server。但是和很多其它的基于key-value的NoSql数据库不同的是redis还提供了五种不同的数据结构,分别为:String,Hash, List, Set, SotrSet.除了以上数据结构,在新的版本当中还提供入位图(BitMaps)和 HyperLogLog(超小内存唯一值计数) 两种数据数据结构,以及提供在3.2 版本中加入 GEO(地理信息位置)。

4.支持多种语言客户端

有Java,Ruby,PHP,Lua,NodeJS等等.

5.功能丰富

例如:键过期(缓存),发布订阅(消息队列),支持Lua脚本(实现自定义命令),事物,pipeline(提高客户端并发效率).

6.简单稳定

不依赖外部库( like libevent) ,单线程模型.

7.主从复制

为高可用和分布式提供很好的基础.

8.高可用(Sentinel)和分布式(Cluster)

四.Redis典型的使用场景

1.缓存系统

合理的使用缓存能够明显加快访问的速度,使用redis做缓存主要是为了降低数据源的压力。这也是 Redis 最常用的功能。同时Redis 提供了键值过期时间(EXPIRE key seconds)设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略.

2.计数器

计数器在网站应用中非常重要,例如,点赞数加一,浏览数加一,还有常用的限流操作,限制每个用户每秒访问系统的次数等等,Redis 支持计数功能(INCR key)而且计数的性能也非常好,计数的同时也可以设置超时时间,这样就可以实现限流.

3.消息队列系统

Redis 提供的发布订阅(PUB/SUB) 和阻塞队列(blpop key1…keyN timeout )的功能,虽然和专业的消息队列比,还不够强大,但对于一般的消息队列功能基本满足.

4.排行榜

每个网站都有自己的排行榜,例如按照热度排名的排行榜,发布时间的排行榜,答题排行榜等等.Redis 提供了列表(List)和有序集合(sorted set)数据结构,合理的使用这些数据结构可以很方便的构建各种排行榜系统.

5.社交网络

赞/踩,粉丝,共同好友/喜好,推送,下拉刷新等是社交网站必备的功能,由于社交网站访问量通常比较大,而且传统的数据库不太适合保存这类数据,Redis 提供的数据结构可以相对比较容易实现这些功能。链接:Redis实战:如何构建类微博的亿级社交平台.

6.实时系统

这里的实时系统比如说像我们平成使用的垃圾邮件处理系统,或者说一些过滤器.

五.Redis单机安装及使用

1.安装(Linux Centos)

安装命令: yum install redis

2.配置 安装完成之后,会在 /usr/local/bin 目录目录下,多出几个可执行文件,称之为 redis shell。其目录文件如下:

  • redis-benchmark: redis 基准测试工具
  • redis-check-aof: redis AOF 持久化文件检测和修复工具
  • redis-check-rdb: redis RDB 持久化文件检测和修复工具
  • redis-cli: redis 命令行客户端
  • redis-server: 启动 redis 服务
  • redis-sentinel: 启动 redis sentinel

3.redis的启动方式

redis的启动方式有三种:

(1).最简启动

直接 redis-server,默认端口 6379.

(2).动态参数启动

运行启动 在 redis-server 后面加入参数,格式为:redis-server –configkey1 configvaue1 –configkey2 configvalue2. 例如:redis-server –port 6370 ,即,将端口自定义为 6370.

(3).配置文件启动

将配置写到配置文件中,例如写到 /opt/redis/redis.conf 中,执行 redis-server /opt/redis/redis.conf 即可启动 redis. redis 有 60 多个配置,常用的是:port(端口),logfile(日志文件),dir(redis 工作目录,存放持久化文件和日志文件),daemonize(是否以守护进程的方式启动 redis).

(4).停止Redis服务

停止 redis 服务 redis 提供了 shutDown 命令来停止 redis 服务,例如停掉127.0.0.1:6379 服务,使用命令:redis-cli shutdown .

注意:

1).redis 关闭的过程:断开和客户端的连接,持久化文件生成。相对而言比较优雅。

2).可以使用kill命令来关闭redis服务,但是不建议使用 kill -9,不但不会做持久化操作,还会造成缓冲区等资源不会优雅关闭.极端情况下造成 AOF 和复制丢失数据的情况.

3).shutdown 还有一个参数,代表是否在关闭 redis 前,生成持久化文件: redis-cli shutdown nosave|save

(5).redis验证

命令如: ps -ef|grep redis/netstat -antpl|grep redis/redis-cli -h ip -p port ping

 

 

最后语:不积跬步,无以至千里;不积小流,无以成江海。对于知识总要温故,这样才能知新!

版权声明:尊重博主原创文章,转载请注明出处 https://www.cnblogs.com/hsdy

 

posted @ 2018-11-01 16:44  寒山道杳  阅读(236)  评论(0编辑  收藏  举报