码迷,mamicode.com
首页 > 其他好文 > 详细

redis

时间:2018-03-30 01:10:48      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:esc   持久化   命名规则   创建   sla   style   服务器   主从模式   部分   

redis的介绍

mysql是以文件的方式保存的硬盘中的。就运行速度应该是按cpu、内存、硬盘的速度由快到慢

而redis就是运用了内存的读取速度比硬盘快很多的原理上,开发的一款内存高速缓冲数据库。数据模型为key-value。

支持丰富的数据结构:String  、list、 hash、 set、 sorted set、持久化保证的数据安全。

缓存分为:数据缓存、页面缓存

 

redis的优点:
1.不仅仅支持简单的k/v类型的数据,同时还支持了list、set、zset、hash等数据结构的存储

2.redis支持master-slave(主从)模式应用。

3.redis支持数据的持久化、将内存的数据保存在磁盘中、重启的时候可以再次加载进行使用

4.redis单个value的最大限制是1GB,而memcached的只能保存1MB的数据。

 

 redis的安装

1、下载redis安装包

2、tar zxvf redis-2.6.14.tar.gz     #解压安装包

3、进入解压后的文件夹,用make  make install 指令进行编译。

4、出现结果to run “make test ”is a good idea。编译成功。

技术分享图片

 一般软件安装目录我们放到/usr/local/redis

5.创建redis运行目录并从src目录拷贝两个个文件进去。

技术分享图片

6.给redis的运行目录在拷贝1个文件(在redis的解压目录下)

技术分享图片

7.启动redis

技术分享图片

8、前端启动redis成功标志(前端启动成功redis的话,只要前端一关闭,redis服务也停了,所以我们改用后台启动,control + c停止前端服务)

技术分享图片

9.修改redis.conf文件  将17行后台启动设置为yes。

技术分享图片

10.后台启动redis服务成功

技术分享图片

11.对redis的简单操作(设置和读取遍历)

技术分享图片

 

redis的具体使用

 redis中key的命名规则:除了"\n"和空格不能作为key的名字的组成部分,其他的都可以字符数字都可以作为key的名字的组成部分,长度也没有限制。

技术分享图片

不同redis数据库切换:最多有16个数据库提供,select 0 查询的是第一个数据库  角标从0到15。

技术分享图片

技术分享图片

 

String字符串操作类型:

redis的String类型可以包含任何数据,包含jpg图片或者序列化的对象

单个value最大值的上限是1G字节

如果只用做String类型,redis可以看作是被加上持久性的memcache。

技术分享图片

incr  : increament  增长

该指令可以对key进行累加的1的操作,默认是累加1操作,类似于i++的操作。

该指令可以针对新key和老key进行操作

新key:创建高key并累加,其值为1

已有key:key的信息值类型必须为整型。

数据类型List链表

list其实一个双向链表,通过push、pop操作从链表头部或者尾部添加删除元素、这使得list即可以做为栈也可以做为队列。

list链表应用场合:
例如正常来说获取最新10个登陆用户的信息:

select * from user_info order by  build_time desc limit 10;

以上sql语句可以实现用户需求,但是数据多的时候,全部数据都要收到影响,对数据库的负载比较高,必要情况下还要给经常需要使用的字段建立索引

索引也比较耗费系统资源。(索引:比如将数据库的数据当作一本字典,比如通过拼音进行索引,如果创建的索引过的的情况下,比如字典真正的字才

100页,但是却创建了200页的索引。本身的数据才100M,但是却创建了200M的拼音的索引。这很耗费系统资源。)

如果使用list来进行以上操作、可以在list链表中只保存最新的10个数据,(先进先出,队列)当数据满10个的时候,每进来一个新的数据,就删除最老一个数据

每次就可以直接从这个链表中获取想要的数据,极大的节省了各方面资源消耗。

list操作类型: (l到r   l头  r尾   按照文字的顺序)

技术分享图片

 

 

数据类型set

redis的set是string类型的无序集合

set集合最大可以包含(2的23次方-1)个元素

关于set集合类型除了基本的添加删除操作、其他有用的操作还包含集合的取并集、交集、差集。通过这些操作很容易实现qq的好友推荐,共同好友之类的

 技术分享图片

 (NoSql)

数据类型sortset排序集合类型

和set一样sorted set也是String类型元素的集合。

不一样的是每一个元素都会关联一个权

通过权值可以有序的获取集合中的元素

sort set集合中每个元素其实就是权和值的组合。

技术分享图片

 

该sort set类型适用场景

获取热门帖子(回复量)信息:

select * from message order by backnum desc limit 5;

(以上需求可以通过sql实现,但是sql比较耗费系统资源)

技术分享图片

zadd key score member :   zadd  key (权重) (值)

例如:zadd tiezi  100 10  (可以认为id为10的帖子的权重是100)

技术分享图片

 

 

数据类型hash

hash数据类型存储的数据与mysql数据库中存储的一条记录非常相似(一条数据多个字段)。

技术分享图片

 

 关于重复元素:

set和sort set没有重复元素

list可以有重复元素

 

持久化

1.snap shotting(快照持久化)

该持久化默认开启,一次性吧redis中全部的数据保存一份存储在硬盘中,如果数据非常多(比如10-20G)就不适合频繁的进行该持久化操作。

快照持久化在本地硬盘中保留的数据备份文件(dump.rdb). 

 技术分享图片

技术分享图片

 

技术分享图片

2.(append only file)AOP持久化

本质:把用户执行的每个“写”指令(添加、删除、修改)都备份到文件中,还原数据的时候就是执行具体写指令而已。

开启AOP持久化:修改redis.conf文件。(同时可以开启备份文件的名字,默认是qppendonly.aop)

开启AOP持久化(会清空redis内部的数据)。

技术分享图片

配置文件被修改,需要删除旧进程、在根据新的配置文件启动新进程。 新进程启动好以后,可以看到对应的qppendonly.aop的文件

 技术分享图片

技术分享图片

对āof备份文件做优化处理

对appendonly.aop文件做优化压缩处理。

(例如:多个 incr指令变成了一个set指令)

技术分享图片

技术分享图片

 

 redis的主从模式

技术分享图片

配置redis.conf文件,成为192.168.39.159的从服务器。

之后文件保存退出,杀死旧的redis进程,启动新的redis进程。

技术分享图片

默认配置,从服务器禁止写入操作:(配置完成后,主服务器只要写入数据了,从服务器就能读取到数据)

技术分享图片

 

redis

标签:esc   持久化   命名规则   创建   sla   style   服务器   主从模式   部分   

原文地址:https://www.cnblogs.com/songcuiting/p/8654725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!