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

浙公网安备 33010602011771号