Redis系列(一):Redis简介及环境安装
提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗?
- 什么是Redis?
- Redis能存储哪几种数据结构?
- Redis有几种持久化机制?它们的优缺点分别是什么?
- 哪些场景需要使用Redis?
- 什么是缓存雪崩,如何避免?
- 什么是缓存穿透,如何避免?
- 什么是缓存击穿,如何避免?
如果你都能回答的上来,恭喜你,说明你对Redis有一定的了解,如果回答不上来,也没关系,本系列博客会对Redis进行一系列的讲解,欢迎关注!
所谓工欲善其事,必先利其器,既然要学习Redis,首先我们至少得知道什么是Redis以及如何安装Redis环境,这也是本篇博客的主要内容。
1. Redis简介
什么是Redis呢?
Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存和消息代理。它支持诸如字符串、散列、列表、集合、有序集合等数据结构。-- Redis官网
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的高性能的key-value数据库。-- 百度百科
Redis是一款依据BSD开源协议发行的高性能key-value存储系统,通常被称为数据结构服务器。-- 其它网友
Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上。 -- 《Redis实战》
Redis是一个速度非常快的非关系型数据库,它可以存储键(key)与5种不同类型值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。-- 《Redis实战》
2. Redis环境安装(Windows)
说明:Redis官方并没有提供Windows版本的Redis,也不建议在生产环境使用Windows版本的Redis,我目前所在的公司生产环境Redis是部署在Linux服务器的。
虽然Redis官方不支持Windows版本,但是微软Microsoft Open Tech Group提供了1个Windows版本的Redis,下载地址:https://github.com/microsoftarchive/redis/releases。

将下载好的文件解压到你喜欢的目录,我这里是E:\Tools\Redis-x64-3.0.504,如下所示:

双击上图中红色标记的redis-server.exe即可启动Redis服务:

也可以打开一个cmd窗口,切换到Redis所在目录,然后执行如下命令启动:
redis-server.exe redis.windows.conf

通过这2种方式打开,需要保证cmd窗口一直保持打开状态,关闭后客户端就无法连接,如果服务器重启了,需要再次打开Redis服务端,为了解决该问题,我们可以把Redis安装成Windows服务:
cd E:\Tools\Redis-x64-3.0.504
redis-server --service-install redis.windows.conf


你可以直接在界面上启动/停止该服务,也可以执行cmd命令来启动/停止/卸载该服务:
启动服务:
redis-server --service-start

停止服务:
redis-server --service-stop

卸载服务:
redis-server --service-uninstall

3. Redis环境安装(Linux)
首先,我们需要将Linux环境下Redis的安装包放到服务器上去,这里有2种方法,第1种方法是,打开Redis官网的下载地址:https://redis.io/download,下载稳定版本到本机:

然后通过工具,比如Xftp,将本地下载的文件上传至Linux服务器的某目录下,比如我这里要上传的目录是/mnt。
第2种方式是通过命令直接下载Redis的安装包到服务器的/mnt目录下,具体命令如下所示:
cd mnt/
wget -q http://download.redis.io/releases/redis-5.0.7.tar.gz



然后,执行如下命令解压文件:
tar -xzf redis-5.0.7.tar.gz


然后,执行如下命令将解压好的文件移动到/usr/local目录下,并进行编译:
mv redis-5.0.7 /usr/local/
cd /usr/local/redis-5.0.7
make

注意事项:执行完make命令后,屏幕会输出好多信息,大概有2~3屏的样子
当看到如下信息时,代表编译完成:

然后,切换到/usr/local/redis-5.0.7/src目录,执行make install命令进行安装:
cd src/
make install

然后,切换到/usr/local/redis-5.0.7目录,新建文件夹bin和etc,并将该目录下的redis.conf文件移动到etc目录,
将/usr/local/redis-5.0.7/src目录下的mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server
移动到刚刚创建的bin目录:
cd ..
mkdir bin
mkdir etc
mv redis.conf etc/
cd src
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server /usr/local/redis-5.0.7/bin/

然后,切换到/usr/local/redis-5.0.7/etc目录,修改下Redis的配置文件redis.conf:
cd ..
cd etc/
vi redis.conf

redis.conf主要修改以下4点:
将daemonize no改为daemonize yes,表示需要在后台运行

将bind 127.0.0.1这一行注释掉
这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。

将protect-mode yes改为protect-mode no
默认是protect-mode yes,不能远程访问,改为no之后,可以远程访问

添加
requirepass 123456设置密码(默认密码为空)
最后,切换到/usr/local/redis-5.0.7/bin目录,执行如下命令启动Redis服务:
cd ..
cd bin/
redis-server /usr/local/redis-5.0.7/etc/redis.conf
启动后,可以执行如下命令查看Redis是否启动以及进程ID:
ps aux | grep redis-server

4. Redis Hello World示例
打开cmd窗口,打开一个redis-cli交互窗口来简单使用下Redis:
redis-cli.exe -h 127.0.0.1 -p 6379
设置一个key-value缓存,其中key为hello,value为hello world!:
set hello "hello world!"
获取key为hello的值:
get hello

5. Redis Desktop Manager使用
虽然我们可以通过命令的方式来查看Redis存储的数据,但毕竟不太友好,这里推荐个比较流行的工具:Redis Desktop Manager。
官网地址:https://redisdesktop.com/。
官网现在的版本2019.5需要付费才能使用,否则只有14天的试用期。

在2019年6份打开还是下面这样的,貌似涨价了啊,哈哈。

不过我们仍然可以下载之前不付费的版本,下载地址:https://github.com/uglide/RedisDesktopManager/releases/tag/0.8.8。

安装过程比较简单,这里不再赘述,安装完成后,连接本机Windows环境下的Redis服务器:

连接成功后,可以看到之前设置的值:

也可以连接远程Linux环境下的Redis服务器:



有些同学可能使用的工具是Another.Redis.Dsektop.Manager,这里只贴下下载地址:http://electronjs.org/apps/anotherredisdesktopmanager,有兴趣的同学可以自行下载。
6. 源码及参考
Redis系列(一):Redis简介及环境安装的更多相关文章
- Redis系列(一):Redis的简介与安装
原文链接(转载请注明出处):Redis系列(一):Redis的简介与安装 什么是 Redis Redis 是一个使用ANSI C 编写的开源.支持网络协议.基于内存.可选持久性的键值对数据库,它是一个 ...
- Redis系列一 Redis安装
Redis系列一 Redis安装 1.安装所使用的操作系统为Ubuntu16.04 Redis版本为3.2.9 软件一般下载存放目录为/opt,以下命令操作目录均为/opt root@ubunt ...
- Redis系列(二):Redis的数据类型及命令操作
原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...
- Memcached简介及环境安装
Memcached简介及环境安装 author:SimpleWu 简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga ...
- scala语言简介及其环境安装
scala语言简介及其环境安装 简介: 1.运行在JVM 上,兼容java语言 Scala的代码,都需要经过编译为字节码,然后交由Java虚拟机来运行.所以Scala和Java是可以无缝互操作的.Sc ...
- Bootstrap:教程、简介、环境安装
ylbtech-Bootstrap:教程.简介.环境安装 1. Bootstrap 教程返回顶部 1. Bootstrap 教程 Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.B ...
- python学习笔记1之-python简介及其环境安装
python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...
- Redis实战(一)Redis简介及环境安装(Windows)
提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗? 什么是Redis? R ...
- redis系列之1----redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
随机推荐
- JavaScript的一些SAO操作
IE判断检测 jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 使用率极高.但是在版本发布之后,大家钟爱的这个属性被无情的抛弃了.大家开始着手寻找.browser 的替代方案.于是各 ...
- Activiti学习之spring boot 与activiti整合
声明:本文是springboot2.0的多项目构建,springboot2.0和spingboot1.5的配置是有出入的,构建项目之前请规范您的springboot版本,选择2.0以上. 一.在IDE ...
- js(一) 三大事件 实现注册验证
ps:小声比比,为什么一周多没更,因为js真的好难啊. 上一周做了一整周的jsp+sevlet+mysql做了一个MVC模式的最基本的新闻系统源码会有空搞出来的 好累 好多的. 三大事件 (鼠标事件. ...
- 关于 vue 生命周期 钩子函数 事件
vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染->更新->渲染.卸载等一系列过程,我们称这是vue的生命周期. 通俗的将就是vue实例从创建到销毁 ...
- 【js】vue 2.5.1 源码学习 (九) 响应数组对象的变
大体思路(八) 本节内容: 1.Observe 如何响应数组的变化 代理原型 数组变异方法 shell cacheArrProto methods 新添加的数组需要加到显示系统里面,拦截 push等的 ...
- HDU 5912 Fraction(模拟)
Problem Description Mr. Frog recently studied how to add two fractions up, and he came up with an ev ...
- P1043 查找小于x的最大元素
题目描述 现在告诉你一个长度为 \(n\) 的有序数组 \(a_1, a_2, ..., a_n\) ,以及 \(q\) 次询问,每次询问会给你一个数 \(x\) ,对于每次询问,你需要输出数组 \( ...
- linux 后备缓存
一个设备驱动常常以反复分配许多相同大小的对象而结束. 如果内核已经维护了一套相同 大小对象的内存池, 为什么不增加一些特殊的内存池给这些高容量的对象? 实际上, 内核 确实实现了一个设施来创建这类内存 ...
- linux tasklet工作队列
工作队列是, 表面上看, 类似于 taskets; 它们允许内核代码来请求在将来某个时间调用 一个函数. 但是, 有几个显著的不同在这 2 个之间, 包括: tasklet 在软件中断上下文中运行的结 ...
- Common Logging包装设计
类设计 LogFactory根据当前环境加载具体的Log实现: 1.从缓存中加载LogFactory 2.从系统属性org.apache.commons.logging.LogFactory 中加载L ...