redis 第一篇

一、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

 

posted @ 2017-08-10 11:11  pi-pi-miao-miao  阅读(172)  评论(0)    收藏  举报