欢迎投稿

今日深度:

Redis安装使用,

Redis安装使用,


Redis

  • Redis
    • 一什么是redis
    • 二为什么使用redis
    • 三什么场合使用redis
    • 四Redis的优点与Memcache比较
    • 五编译安装Redis
    • 七redis各种数据结构操作
      • key
      • String
      • List
      • set
      • zset
      • Hash
    • 八php操作redis
      • 安装拓展
      • 代码操作
      • 消息队列操作
    • 九优化
      • 1snapshotting
      • 2append only file
      • 3主从复制架构
        • 1主服务器配置
        • 2从服务器配置

一、什么是redis

nosql非关系数据库 数据模型 key=>value

Memcached 内存缓存数据库

Redis 内存缓存数据库

MongoDB 功能齐全 数据存储到磁盘

Redis 是Remote Dictionary Server(远程数据服务)的缩写。

是一款 内存高速缓存数据库

它支持多种数据结构

1. String、

2. List(双向链表)、

3. Hash(哈希)、

4. Set(集合)、

5. zSet(有序集合sorted set)

二、为什么使用redis

三、什么场合使用redis

根据不同的业务模式,使用不同的数据存储结构

[Sorted Set]排行榜应用,取top n操作,例如sina微博热门话题

[List]获得最新N个数据 或 某个分类的最新数据

[string incr]计数器应用

[Set] sns(social network site)获得共同好友

[Set]防攻击系统(ip判断)等等 黑白名单

四、Redis的优点(与Memcache比较)

五、编译安装Redis

#先将redis压缩包,php扩展包上传至/root/amp,然后解压
cd /root/amp
tar zxvf redis-4.0.1.tar.gz
cd redis-4.0.1
make PREFIX=/usr/local/redis install

测试启动redis

/usr/local/redis/bin/redis-server

后台启动redis服务器

默认不支持后台启动,使用不方便,通过配置文件进行配置。

cd /root/amp/redis-4.0.1
cp ./redis.conf /usr/local/redis/bin/
vim +/daemon redis.conf
:i 
daemonize yes
:wq
#启动时配上配置文件参数
./redis-server ./redis.conf

命令行客户端使用

/usr/local/redis/bin/redis-cli
#设置和获取
set name itcast
get name
#查看redis服务器状态
info

七、redis各种数据结构操作

1.key

redis默认提供了16个库的使用,下标从0开始。

2.String

string是redis最基本的类型

redis的string可以包含任何数据。包括jpg图片或者序列化的对象。

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

如果只用string类型,redis就可以被看作加上持久化特性的memcache

3.List

ist类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。

这使得list既可以用作栈,也可以用作队列。

栈 先进后出 同一端进出

队列 先进先出 一端进,另外一端出

需求:建立一个存储结构 存储一种类型(业务上)的数据

取出最后进入结构的数据。

记录目前市场常见的编程语言

c c++ c# java html css JavaScript php python ruby go nodejs

key:LA

4. set

set是string类型的不允许有重复元素的无序集合

set元素最大可以包含(2的32次方-1)个元素。

关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐功能.

需求:存储两个人的朋友圈

设计:

xiaomingFR xiaoqiang xiaohua xiaohong xiaohuang xiaohei

xiaohongFR xiaoming xiaohei xiaohuang xiaolv xiaolan

5. zset

和set一样sorted set也是string类型元素的集合,不允许有重复元素

不同的是每个元素都会关联一个权(score)。

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

需求:手机应用下载排行榜

设计:APPTOP

id name score

1 QQ 3

2 wechat 6

3 weibo 5

4 taobao 8

5 jd 9

6 king 2

6. Hash

key=>value(feild:value)

适合存储key=>value对应格式的数据。json对应关系、对象对应关系、关联数组

实例:

八、php操作redis

1.安装拓展

①编译生成拓展

tar zxvf redis-3.1.5.tgz
 cd  redis-3.1.5

是php的拓展文件,所以需要php的一个配置拓展的软件phpize,进行设置生成configure文件

shell > /usr/local/php/bin/phpize
shell > ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install

②开启php.ini配置,重启启动服务器,查看phpinfo

vim /usr/local/php/lib/php.ini
#847行开启
extension=redis.so
service httpd restart

2.代码操作

<?php
  //实例化
  $redis = new Redis();
//连接
$redis -> connect('192.168.65.128',6379);
//设置
$redis->set('key1',time());
//获取
var_dump($redis->get('key1'))

3.消息队列操作

需求:设计一个抢购的业务模式,要求不能够超卖。

设计:

①把商品数量添加到list中

②通过出队列的方式,把数据一个一个取出来

设计模式:

生产者:把需要执行的任务添加到队列中

消费者:把队列中的任务一个一个消耗掉

实际中在代码中体现就是两个访问路径和方法

实现:

添加商品到对列中

限购思路:

①通过用户的唯一标识确认 登录之后才可以抢购,在下单之前判断是否已经买过了

②简单通过ip判断是否已经购买(误伤率大)

九、优化

redis提供数据持久化机制(数据存储到磁盘中)。

方式:

①snapshotting快照 默认开启的

②aof append only file 追加写方式

1、snapshotting

①查看配置文件快照默认备份频率

2、append only file

注意:开启append only file 之前的快照数据会丢失!!!

要先保存之前的快照数据到数据库或文件中!!!

①查看配置开启



②重启配置测试aof

3、主从复制架构

主 master 192.168.65.128

从 slave 192.168.65.129

slave读master服务器并同步

需解决问题:

①主服务器必须运行从服务器远程访问,防火墙端口问题6379

②从服务器上配置,主服务器的相关地址信息

3.1、主服务器配置

①打开主服务器防火墙6379端口

②主服务器要在配置中允许从服务器登录

3.2、从服务器配置

①修改配置文件相关信息

修改好主从服务器,重启redis的主从服务器。通过redis-cli命令行客户端进行登录,测试操作主服务器

主服务器查看主从效果

从服务器查看主从效果

www.htsjk.Com true http://www.htsjk.com/redis/28660.html NewsArticle Redis安装使用, Redis Redis 一什么是redis 二为什么使用redis 三什么场合使用redis 四Redis的优点与Memcache比较 五编译安装Redis 七redis各种数据结构操作 key String List set zset Hash 八php操作redis 安...
相关文章
    暂无相关文章
评论暂时关闭