一、redis简介

redis是一个开源的高性能键值对数据库:本质上是数据结构服务器或者是数据结构数据库

特点:

  1、共享内存

如果有自己的线程可以读list,如果外界还有一个程序都上面的list,那显然都不到的,但是redis是可以的

2、持久化

因为有上面的两个特点,解决了编程语言无法解决的问题,所以redis才会广受追捧

历史和发展

2008年,意大利的一家创业公司Merzia推出了基于MySql的网站实时统计系统LLOOGG,然而没过多久,该公司的创始人Salvatore Sanfilippo便开始对mysql的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,09年完成,这个数据库就是redis,并在同一年将redis开源发布,Salvatore Sanfilippo自己也没想到,短短的几年时间,redis就拥有了庞大的用户群体。Hacker News在12年发布一份数据库使用情况调查,结果显示有12%公司在使用redis,国内如新浪、知乎,国外如github、Stack Overflow都是redis的用户

特性:

  a、存储结构上的特点  允许其他应用通过TCP协议读取字典中的内容

  1、字符串类型

   2、散列类型 (字典)

  3、列表类型

  4、集合类型

   5、有序集合类型  复杂度(logN)

b、内存存储和持久化

redis数据库中的所有数据都 存储在内存中(unicode)由于内存的读写速度远快于硬盘,redis可以在一秒内读写超过十万个键值

redis将数据存储在内存中也有问题,如程序退出后内存中的数据会丢失,不过redis提供了持久化的功能,即将可以内存中的数据异步写入到硬盘中,同时不影响继续提供服务

c、功能丰富(应用场景)

1、作为database

2、cache

3、queue(message broker)

4、redis可以做MQ,(如果数据太大,不建议)常见的MQ有Rabbitmq,ActiveMQ,RocketMQ

d、简单稳定

1、语法简单(get,set)  (命令只有一百多个)

2、稳定,redis是使用c语言开发

redis和memcached

redis在性能上是单线程模型(很少用多线程),Memcached支持多线程,所以在多核服务器上后者的性能更高一些,但是redis在绝大部分场合下性能都不会成为瓶颈

作为缓存系统,redis还可以限定数据占用的最大内存空间,在数据达到空间限制后,可以按照一定的规则自动淘汰不需要的键

除此之外,redis的列表类型键还可以实现队列,并且支持阻塞式读取,可以很容易的实现一个高性能的优先级队列,在更高层面上,redis还支持“发布订阅”的消息模型

三、安装redis

Installation

Download, extract and compile Redis with:

$ wget http://download.redis.io/releases/redis-4.0.1.tar.gz

$ tar xzf redis-4.0.1.tar.gz

$ cd redis-4.0.1

$ make

出现上面就是安装成功

之后下面是redis简单的使用

The binaries that are now compiled are available in the src directory. Run Redis with:

$ src/redis-server

You can interact with Redis using the built-in client:

$ src/redis-cli

redis> set foo bar

OK

redis> get foo

"bar"

安装小结:

1、redis 默认采用6379的端口

2、

redis-server redis服务器

redis-cli  redis的客户端

redis-sentinel   做双击热备

redis-benchmark 性能优化

redis-check-aof  AOF文件修复工具

redis-check-dump   RDB文件检查工具

小实例

[root@localhost redis-4.0.1]# src/redis-cli

127.0.0.1:6379> set name pyrene

OK

127.0.0.1:6379> get name

"pyrene"

本系列环境:

Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

redis-4.0.1

redis 第一篇的更多相关文章

  1. 15天玩转redis —— 第一篇 开始入手

    双十一终于还是过去了,我负责的mongodb由于做了副本集,最终还是挺过去了,同事负责的redis,还是遗憾的在早上8点左右宕机了,然后大家就是马不停 蹄的赶往公司解决问题,因为我对redis也不是很 ...

  2. Redis第一篇(Redis单机版本安装及启动)

    安装: 1 2 3 4 5 [root@M2_Redis1 ~]# yum install gcc gcc-c++     (安装依赖) [root@M2_Redis1 tools]# wget ht ...

  3. redis第一篇--综述

    1 redis里边有数据库的概念.可分为1-255这些表.在存储或者查找的时候要指明. redis_sentinel 集群里边封装成了namespace这样的概念.与db是不一样的.

  4. 【原】Spring整合Redis(第一篇)—SDR简述

    1.SDR说明 Spring Data Redis(SDR),是SpringFramework提供的一套简化访问Redis的API,是对Jedis的又一层封装. SDR集成了Jedis,JRedis, ...

  5. .net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务

    Cygwin工具编译Redis Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译. Cygwin下载地址: ...

  6. PHP 性能分析第一篇: Xhprof & Xhgui 介绍

    [前言]这是国外知名博主 Davey Shafik所撰写的 PHP 应用性能分析系列的第一篇,阅读第二篇可深入了解 xhgui,第三篇则关注于性能调优实践. 什么是性能分析? 性能分析是衡量应用程序在 ...

  7. 从.Net到Java学习第一篇——开篇

    以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...

  8. PHP 性能分析第一篇: Intro to Xhprof & Xhgui

    [前言]这是国外知名博主 Davey Shafik所撰写的 PHP 应用性能分析系列的第一篇,阅读第二篇可深入了解 xhgui,第三篇则关注于性能调优实践. 原文链接如下: https://blog. ...

  9. Redis分布式篇

    Redis分布式篇 1 为什么 需要 Redis 集群 1.1 为什么需要集群? 1.1.1 性能 ​ Redis 本身的 QPS 已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响. ...

随机推荐

  1. HTML CSS表格如何控制上下间距

    css:td{margin-top:10px; 上间距margin-right:10px; 右间距margin-bottom:10px; 下间距margin-left:10px; 左间距}

  2. Java Web -- Servlet(1) 必备知识

    学习Java WEB开发必备的基本概念: 1.WEB 本意是蜘蛛网和网的意思.在网页设计中我们称为网页的意思. 现广泛译作网络.互联网等技术领域.表现为三种形式,即超文本(hypertext).超媒体 ...

  3. diamond源码阅读-diamond-client

    读取数据 DiamondManager manager = new DefaultDiamondManager("DEFAULT_GROUP", "zml", ...

  4. Android实现短信监听并且转发到指定的手机号,转发后不留痕

    转载:http://blog.csdn.net/swqqcs/article/details/7252419 通过这些代码也可以对远程手机实现短信控制.有兴趣的可以自己改一下,说一下简单的原理,要实现 ...

  5. Java-iBATIS

    1.是什么? 2010年迁移到了google code,并且改名为MyBatis.ibatis1.ibatis2.到了版本3就改名为mybatis. iBATIS的是一个持久层框架,它能够自动在 Ja ...

  6. Ubuntu安装特定版本安装包

    Ubuntu安装特定版本安装包可以用aptitude,aptitude是apt-get的高级版,使用起来更强大. aptitude install package=version 比如我要安装2.6. ...

  7. scrapy初体验 - 安装遇到的坑及第一个范例

    scrapy,python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.scrapy用途广泛,可以用于数据挖掘.监测和自动化测试.scrapy的安装稍 ...

  8. mac - MAC电脑安装Mysql服务器和Navicat for mysql客户端

        1.下载链接 Navicat for mysql客户端 链接: https://pan.baidu.com/s/1dGbzgbR 密码: i43g Mysql服务器 链接: https://p ...

  9. CodeIgniter框架——函数(时间函数、装载函数)剖析+小知识点

    连接数据库: 格式: mysql -h主机地址 -u用户名-p用户密码 数据库的提示符:mysql> 退出数据库: exit(回车) 知识点积累: 1.date_default_timezone ...

  10. [Spring Data Repositories]学习笔记--定义自己的repository

    有时,我们会需要用到自己定义的一些查询方法,可以按照下面几步进行. 1. 定义一个包含该方法的接口 Interface UserRepositoryCustom { public void someC ...