Redis系列(一):小试牛刀
引言
随着互联网的高速发展,传统的关系数据库(如MySQL、Microsoft SQL Server等)已不能满足日益增长的业务需求,如商品秒杀、抢购等及时性非常强的功能,随着应用高并发的访问,会造成系统数据库崩溃,为了解决此种情况,需要引用一个缓存中间件,市面上比较常用的缓存中间件有Redis 和 Memcached,他们各自有自己的优缺点,但一般互联网公司大都采用MySQL + Redis的方式进行架构,本文主要介绍Redis的概念及安装配置。
简介
概念
Redis(Remote Dictionary Server ) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。
传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。
它和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,redis在3.0版本推出集群模式。
Github 源码:https://github.com/antirez/redis
Redis 官网:https://redis.io/
特点、优势
- k、v键值存储以及数据结构存储(如列表、字典)
- 所有数据(包括数据的存储)操作均在内存中完成
- 单线程服务(这意味着会有较多的阻塞情况),采用epoll模型进行请求响应,对比nginx
- 支持主从复制模式,更提供高可用主从复制模式(哨兵)
- 去中心化分布式集群
- 丰富的编程接口支持,如Python、Golang、Java、php、Ruby、Lua、Node.js
- 功能丰富,除了支持多种数据结构之外,还支持事务、发布/订阅、消息队列等功能
- 支持数据持久化(AOF、RDB)
对比memcache
- memcache是一个分布式的内存对象缓存系统,并不提供持久存储功能,而redis拥有持久化功能
- memcache数据存储基于LRU(简单说:最近、最少使用key会被剔除),而redis则可以永久保存(服务一直运行情况下)
- memcache是多线程的(这是memcache优势之一),也就意味着阻塞情况少,而redis是单线程的,阻塞情况相对较多
- 两者性能上相差不大
- memcache只支持简单的k、v数据存储,而redis支持多种数据格式存储。
- memcache是多线程、非阻塞IO复用网络模型,而redis是单线程IO复用模型
安装Windows版本
Redis的windoms版下载地址:https://github.com/microsoftarchive/redis/releases。
下载自己需要的版本,如下图(msi是安装版本,zip是解压版):

下载zip到本地解压(笔者解压目录为D:\Program Files\Redis),目录如下:

开启服务,运行CMD,切换到解压目录,执行如下命令(并设置最大内存):
redis-server.exe redis.windows.conf --maxmemory 200M
效果如图所示:

开启命令行客户端,执行如下命令:
redis-cli.exe
添加和查询Key-Value,执行如下命令:
#设置键值
set key value
#获取键值
get key
查询和设置密码,执行如下命令:
#查询密码
config get requirepass
#设置密码
config set requirepass 密码
输入密码,执行如下命令:
auth 密码
以上几个命令,演示如下图所示。

注册和卸载服务,执行如下命令:
#注册安装服务
redis-server --service-install redis.windows.conf --loglevel verbose
#卸载服务
#redis-server --service-uninstall
执行效果,如下图:

注册完成后,可以在计算机服务中看到该服务,如下图所示。
开启服务后,可以直接用命令行客户端进行连接。
总结
本文简单的介绍了Redis的背景、概念及Windows版本的安装及测试,在后续博文中,将继续讲解Redis的相关内容,如果本文对你有所帮助,就是我写作的动力!感兴趣的朋友可以加关注,欢迎留言交流!
Redis系列(一):小试牛刀的更多相关文章
- Redis系列之key操作命令与Redis中的事务详解(六)
序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查阅,更深入的挖掘redis潜力. 2.掌握redis中的事务,让你的数据完整性一致性拥有更优的保障. redis命 ...
- Redis系列(2)之数据类型
Redis系列(2)之数据类型 <Redis系列(1)之安装>中介绍了Redis支持以下几种数据类型,那么本节主要介绍学习下这几种数据类型的基本操作 字符串类型,string 散列类型,h ...
- Redis系列(1)之安装
Redis系列(1)之安装 由于项目的需要,最近需要研究下Redis.Redis是个很轻量级的NoSql内存数据库,它有多轻量级的呢,用C写的,源码只有3万行,空的数据库只占1M内存.它的功能很丰富, ...
- Redis系列整理
0.Redis系列-安装部署维护篇 1.Redis系列-远程连接redis并给redis加锁 2.Redis系列-存储篇string主要操作函数小结 3.Redis系列-存储篇list主要操作函数小结 ...
- Python操作redis系列之 列表(list) (四)
# -*- coding: utf- -*- import redis r =redis.Redis(host=,password="ZBHRwlb1608") 1. Lpush ...
- redis 系列25 哨兵Sentinel (高可用演示 下)
一. Sentinel 高可用环境准备 1.1 Sentinel 集群环境 环境 说明 操作系统版本 CentOS 7.4.1708 IP地址 172.168.18.200 网关Gateway 1 ...
- redis 系列14 有序集合对象
一. 有序集合概述 Redis 有序集合对象和集合对象一样也是string类型元素的集合,且不允许重复的成员.不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员 ...
- Python操作redis系列之 列表(list) (五)(转)
# -*- coding: utf-8 -*- import redis r =redis.Redis(host=") 1. Lpush 命令将一个或多个值插入到列表头部. 如果 key 不 ...
- Redis系列(二):Redis的数据类型及命令操作
原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...
- Redis系列(一):Redis的简介与安装
原文链接(转载请注明出处):Redis系列(一):Redis的简介与安装 什么是 Redis Redis 是一个使用ANSI C 编写的开源.支持网络协议.基于内存.可选持久性的键值对数据库,它是一个 ...
随机推荐
- jenkins-设置定时任务
前言 跑自动化用例每次用手工点击 jenkins 出发自动化用例太麻烦了,我们希望能每天固定时间 跑,这样就不用管了,坐等收测试报告结果就行. 一.定时构建语法 * * * * * (五颗星,中间用 ...
- NSURLSession的前世今生
系统网络框架架构图 前世-NSURLConnection NSURLConnection是苹果提供的原生网络访问类,已经有10多年的历史了,它从 iOS 2.0 开始,一直到iOS9被废弃.异步方法在 ...
- JUC-八锁现象和不安全锁
1,被 synchronized 修饰的方法,锁的对象是方法的调用者(实例对象) 2,被 static 修饰的方法,锁的对象就是 Class模板对象,这个则全局唯一 问题7: 一个普通同步方法,一个静 ...
- sublime Text3 前端常用插件
sublime Text3 前端常用插件 - File Switching (文件切换) --- Sublime Text提供了一个非常快速的方式来打开新的文件.只要按下Ctrl+ P并开始输入你想要 ...
- Spring配置cache(concurrentHashMap,guava cache、redis实现)附源码
在应用程序中,数据一般是存在数据库中(磁盘介质),对于某些被频繁访问的数据,如果每次都访问数据库,不仅涉及到网络io,还受到数据库查询的影响:而目前通常会将频繁使用,并且不经常改变的数据放入缓存中,从 ...
- JZOJ 4298. 【NOIP2015模拟11.2晚】我的天
4298. [NOIP2015模拟11.2晚]我的天 (File IO): input:ohmygod.in output:ohmygod.out Time Limits: 1000 ms Memor ...
- 使用VMware12在CentOS7上部署docker实例
今天下午算是自己搞了一下午才搞出来,对于认为linux是自己死穴的我,现在能搞出来,心里滋味不是一丢丢,哈哈~~~ 算了,废话不多说,直接上图!步骤如下: 1.在安装好VMware12并安装好了cen ...
- SpringBoot入门系列(四)整合模板引擎Thymeleaf
前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/ ...
- django 从零开始 13 返回文件
进行一些操作返回文件,flask和django差不多,基本都是在返回response 并且对其中的返回头部写入返回文件信息 # image def image(request): f = open(r ...
- 基于Linux Lite 4.8制作“Windows 12 Lite”正式发布
值得注意的是,这款Windows 12 Lite的宣传标语将矛头直指Windows 10,声称不会迫使用户更新.不会存在病毒或恶意软件.启动速度比Win 10快3倍.提供8万多款优质软件.允许与Win ...