文档章节

[喵咪Redis]Redis安装与介绍

喵了_个咪
 喵了_个咪
发布于 2016/06/29 12:58
字数 1367
阅读 116
收藏 1

#[喵咪Redis]Redis安装与介绍

##前言##

哈喽大家好啊,这次要来和大家一起来了解学习Redis的一系列技术,最终目的是搭建一个高可用redis集群自动负载灾备,那我们先从最基础的Redis的一些基本介绍以及安装来说起!

附上:

喵了个咪的博客:w-blog.cn

Redis官网:http://redis.io/

Redis命令大全:http://doc.redisfans.com/

Redsi源码地址:http://download.redis.io/releases/

GitHub地址:https://github.com/antirez/redis

##1. Redis是什么?解决什么问题?##

##1.1 Redis是什么

摘录百度百科介绍

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,Redis支持丰富的value类型如string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作.

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

##1.2 Redis解决了什么问题呢?

看了上面的介绍已经对Redis有了一个了解,Redis是一个内存缓存Key-Value数据库,Redis的特点决定了他能解决什么问题

  1. 基于内存速度快:适合使用到数据缓存
  2. 数据类型多:可以解决多场景对数据存储的问题
  3. 支持push/pop:可以做订阅等操作
  4. 失效时间:适合做一些与时间相关的操作

但是在我们基本使用中来解决的问题大部分就是第一种

比如一个场景我发送了一个验证码这个手机号需要和这个验证码绑定上,入库当然是一个选择但是不是最好的,我们可以把手机号与验证码的对应关系存放到redis中,然后在验证的时候获取这个验证码进行对比

在比如一个场景,我有一个接口接口是获取所有用户的信息,这个用户信息可能处理起来需要花费20ms,但是更新不频繁不需要实时,我们可以用redis作为这个接口的结果缓存,第一次来获取的时候走正常逻辑,后面都是从redis拿到结果返回,响应时间从20ms缩短到了1ms

当然使用场景还有很多这些就要大家来结合业务来思考解决方案了

##2. Redis的安装##

简单介绍了一下Redis以及他的使用场景之后我们来看下redis要如何安装呢?

redis推荐环境为Liunx,windows当然也可以装不过不推荐,我们这次也是使用Liunx环境系统为Centos6.5

Redis下载可以从上面Redsi源码地址的下载好的压缩包,推荐2.8以上的版本,因为后面会使用到集群搭建需要使用到Sentinel

//首先下载redis包并且解压
wget http://download.redis.io/releases/redis-2.8.17.tar.gz
tar zxvf redis-2.8.17.tar.gz
cd redis-2.8.17

//进行编译
make
//测试(可以跳过)
make test
//编译安装
make install

//redis提供的install脚本可配置生成一个redis端口
cd utils
./install_server.sh
Please select the redis port for this instance: [6379]
Please select the redis config file name [/etc/redis/6379.conf]
Please select the redis log file name [/var/log/redis_6379.log]
Please select the data directory for this instance [/var/lib/redis/6379]
Please select the redis executable path [/usr/local/bin/redis-server]

//启动redis,如果端口号是6380那么就是redis_6380
service redis_6379 start

这个时候我们就可以测试一下是否可以连接上redis

//运行redis-cli默认端口号6379如果是6380需要-p 制定端口
redis-cli	

在命令行输入info,如果看到了信息,恭喜你已经成功运行起来了redis

更多的命令可以参考上面的redis命令大全

##3. 总结##

本节先介绍了redis是什么怎么用,下一节将介绍redis的配置中几个比较重要的点,以及怎么配置主从关系,那么本节就到这里了多谢大家的关注!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

PhalApi官网QQ交流群:421032344 欢迎大家的加入!

© 著作权归作者所有

喵了_个咪
粉丝 337
博文 168
码字总数 216632
作品 4
杨浦
技术主管
私信 提问
[喵咪Redis]Redis配置文件和主从设置

[喵咪Redis]Redis配置文件和主从设置 上一节已经介绍了redis的基本使用也运行起来了redis,本节来进一步了解一下redis的配置,以及怎么配置主从关系,主从关系配置好了我们的redis就可以以一个集...

喵了_个咪
2016/06/29
78
0
喵了个咪/phalapi2-redis

基于PhalApi2的Redis拓展 前言 Redis在PHP开发中运用场景已经无处不在,小到简单缓存大到数据库或消息队列都可以使用Redis来进行实现,基于PhalApi2的出世,PhalApi2-Redis也紧接着进行了本次适...

喵了个咪
2017/08/20
0
0
[喵咪Redis]Redis-Sentinel

[喵咪Redis]Redis-Sentinel 前言 redis-Sentinel 是我们这次来一同学习 redis 的重点,在我们现在的系统已经离不开 redis 的时候 , redis 挂掉了或者是一些其他问题都是致命的 , 那么怎么做到...

喵了_个咪
2016/06/29
129
0
喵了个咪/phalgo

PhalGo V 0.0.3 ##前言 PhalGo是一个Go语言开发的一体化开发框架,主要用于API开发,因为使用ECHO框架作为http服务,MVC模式一样可以使用,牛顿曾经说过"如果我比别人看得远,那是因为我站在巨人的...

喵了个咪
2016/05/24
0
0
二, 跨语言微服务框架 - Istio环境搭建

当我们知道Istio是一个好东西,能够帮助我们快速实现微服务化中的一些关键节点,那么下一步就需要考虑怎么使用Istio了,Istio现在版本是和Kubernetes强关联在一起的,如果大家还不是太了解K...

喵了_个咪
2018/11/12
3.3K
2

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写自定义控件69-代码行数统计

一、前言 代码行数统计主要用来统计项目中的所有文件的代码行数,其中包括空行、注释行、代码行,可以指定过滤拓展名,比如只想统计.cpp的文件,也可以指定文件或者指定目录进行统计。写完这...

飞扬青云
12分钟前
2
0
驰骋工作流引擎-ccflow关于 “ 是否自动计算未来的处理人”的功能变更

关键字:流程未来节点处理人 工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 业务背景:一个流程在启动起来后,是可以对一些节点计算出来处理人是谁,流程的走向。对于另...

孟娟
28分钟前
4
0
IT兄弟连 HTML5教程 HTML5表单 HTML表单设计1

表单是PHP程序中最常使用的收集站点访问者信息的数据输入界面。通过表单浏览器获取用户的输入数据,并传送给Web服务器的脚本程序中,以各种不同的方式进行处理。在表单中提供了多种输入方式,...

老码农的一亩三分地
29分钟前
2
0
武者Vue

本文转载于:专业的前端网站➼武者Vue 1 - Introduction2 - The Vue Instance3 - Data & Methods4 - Data Binding5 - Events6 - Event Modifiers7 - Keyboard Events8 - Two-Way Data......

前端老手
35分钟前
4
0
uni app 零基础小白到项目实战

$emit 子组件传给父组件$ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http'const now = Date.now || function() { return new Date().getTime......

达达前端小酒馆
45分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部