Linux 之 Redis


参考教程:【千峰教育】


一、Redis简介:

  说明:  

    1、也是一种类似于Memcached的key-value机制的存储服务
    2、是非关系型数据库(NoSQL)的一种
    3、官网:www.redis.io,中文网:www.redis.cn

  特点:

    1、能够持久化存储数据,而Memcached不能
    2、value支持更多的数据类型
    3、支持数据备份,主从模式 


二、Redis安装:

  1、解压:
    tar -zxvf redis-3.2.8.tar.gz
    (我选择的版本:wget http://download.redis.io/releases/redis-5.0.3.tar.gz)
  2、移动
    cp -R redis-3.2.8 /usr/local/redis
  3、安装(无需配置编译)
    cd /usr/local/redis
    make install
  4、redis服务介绍:
    安装完成后,/usr/local/redis/src 目录中有两个服务程序
    客户端:redis-cli
    服务端:redis-server
  5、服务端测试:./redis-server

  6、将服务添加到环境变量中:

    默认配置文件路径:/usr/local/redis/redis.conf
    添加环境变量:
      vim /etc/profile
      export PATH=$PATH:/usr/local/redis/src/
      source /etc/profile
  7、设置开机启动:
    (1)编辑配置文件
      cd /usr/local/redis/
      cp redis.conf redis.conf.bak #备份一下
      vim redis.conf
      daemonize yes #默认是no,是否以守护进程的方式运行
    (2)编辑启动脚本文件
      cd /usr/local/redis/utils/
      cp redis_init_script redis_init_script.bak #备份一下
      vim redis_init_script
      EXEC=/usr/local/redis/src/redis-server
      CLIEXEC=/usr/local/redis/src/redis-cli
      CONF=/usr/local/redis/redis.conf
    (3)测试启动脚本(可以通过ps查看并用redis-cli连接)
      ./redis_init_script start
    (4)开机启动
      vim /etc/rc.local
      添加:
      /usr/local/redis/utils/redis_init_script start
  8、服务测试:
    (1)查看进程
      ps aux | grep redis
    (2)使用客户端连接
      /usr/local/redis/src/redis-cli
      参数:
        -h 主机
        -p 端口号,默认6379
        -a 指定密码
      输入:ping,显示pong,表示通了。
  9、设置密码
    (默认是没有密码的)
    (1)单次生效
      设置密码:config set requirepass 123456
      获取密码:config get requirepass
      授权使用:auth 123456
    (2)永久生效
      修改配置文件:vim redis.conf
      取消requirepass行前的注释,后面加上密码即可。
      requirepass 123456
      说明:启动密码后,无密码也可以连接,但是没有权限进行操作。
  10、客户端操作:
    常用命令:
      ping:查看服务器是否允许(结果显示pong表示允许)
      quit:关闭当前连接
      auth:验证当前连接(auth 密码)
      select:选择库,1-15,共16个,默认使用0(示例:select 2)
      flushdb:删除当前数据库数据
      flushall:删除所有数据库数据
      DEL:删除键
      EXISTS:检查键是否存在
  11、数据类型介绍:
      (1)字符串(String):是最基本的数据类型,与Memcached的Key-Value一样。
        设置:SET key value
        获取:GET key
      (2)哈希(Hash):是一个键值对集合,特别适合存储对象。
        设置:HMSET user:1 name zhangsan age 12
        获取所有信息:HGETALL user:1
        获取单个信息:HGET user:1 name
      (3)列表(List):按照插入顺序排序,可以添加一个元素到列表的头部或尾部。
        左侧压入:lpush key value [value2 value3 ...]
        右侧压入:rpush key value [value2 value3 ...]
        左侧弹出:lpop
        右侧弹出:rpop
        范围显示:lrange key start stop(示例:lrange key 0 -1显示全部)
        显示个数:llen key
      (4)集合(Set):string类型的无序集合,集合中的数据是唯一的。
        添加数据:sadd key value [value2 value3 ...]
        显示数据:smembers key
        显示总数:scard key
        随机移除:spop key [count] 默认随机移除一个

      (5)有序集合(zset:zort set)
        不同于set的是每个元素都会关联一个double类型的分数。
        redis正是通过分数来为集合中的成员进行从小到大的排序。
        添加数据:zadd key score value
        显示数据:zrange key start stop
        显示总数:zcard key
        显示范围:zcount key start stop
        显示序号:zrank key member
        显示分数:zscore key member


三、PHP操作redis:

  1、安装php-redis扩展:
    教程中的示例:  

      下载:https://github.com/phpredis/phpredis/tree/php7/phpredis-php7.zip
      解压:unzip phpredis-php7.zip
      进入:cd phpredis-php7
      解压:phpize
      配置:./configure --with-php-config=/usr/local/php7/bin/php-config
      编译:make
      安装:make install
    我选择的版本:
      下载:wget https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz
      解压:tar -zxvf 4.3.0.tar.gz
      进入解压后的目录:cd 4.3.0
      解压:phpize
      配置:./configure --with-php-config=/usr/local/php7/bin/php-config
      编译:make
      安装:make install

    安装完成,结果显示(这里的路径下面要用):

    Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/

  2、修改PHP配置文件php.ini
    vim /usr/local/php7/etc/php.ini
    将上一步的路径添加进来
    extension=/usr/local/php7/lib/php/extensions/no-debug-no-zts-20180731/redis.so
  3、重启php-fpm
    service php-fpm restart
  4、测试扩展库是否安装成功
    phpinfo()
  5、php代码操作redis
    示例一:

//创建对象
$redis = new Redis();
//连接服务器
$redis->connect('127.0.0.1',6379);
//密码认证
$redis->auth('123456');
//设置
$redis->set('name','zhang san');
//获取
$name = $redis->get('name');
var_dump($name);

  示例二:

    (假设要进行抢购秒杀,lpush.php记录抢到的用户,rpop.php处理队列中的中奖用户。)
    lpush.php:

$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->auth('123456');
//记录抢到的用户,为了测试这里用随机的名字代替,实际是记录真实的用户
$redis->lpush('user_id','user_'.mt_rand(1,10000));

    rpop.php:

$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->auth('123456');
var_dump($redis->rpop('user_id'));

注意事项:

  选择php-redis扩展时,选择不同的版本,可能结果不一样,我开始选择的是,php官网的redis-2.2.5.tgz版本,编译时就报错:

...

...,致命错误:ext/standard/php_smart_str.h:没有那个文件或目录
...
编译中断。
make: *** [redis.lo] 错误 1

在网上搜索后,得到的说法是:
因为最新的 phpredis 分了几大分支,针对最新的PHP稳定发行版 php7 有专门为php7的分支,
所以我们从github拉下phpredis 源码。

然后从github上找了一个版本:https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz。

下载重新安装成功了。


Linux 之 Redis的更多相关文章

  1. Linux下Redis的安装和部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  2. Linux下Redis服务器安装配置

    说明:操作系统:CentOS1.安装编译工具yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...

  3. linux下Redis与phpredis扩展安装

    ++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...

  4. windows下和linux下 Redis 安装

    Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windo ...

  5. linux上redis安装配置及其防漏洞配置及其攻击方法

    Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令:  yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...

  6. linux安装redis(转)

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  7. linux安装redis标准流程-按这个来

    1.将下载好的压缩包放到/usr/local目录下# tar xzf redis-3.2.9.tar.gz # cd redis-3.2.9 # make 提示错误 make: cc: Command ...

  8. Linux中redis安装配置及使用详解

    Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...

  9. Linux安装redis服务器

    Linux安装redis服务器 初次接触,这里简单的说下我遇到的情况以及安装方法,当然也是参考了诸位大神的. 确定虚拟机的主机IP. 1)首先需要一个linux虚拟机,确定虚拟机的ip ,输入命令:# ...

  10. Linux配置Redis外网访问

    下载:redis-3.2.5.tar.gz 拷贝到指定目录解压:tar -xzvf redis-3.2.5.tar.gz 进入到解压目录redis-3.2.5下安装: makemake install ...

随机推荐

  1. Java微信公众号开发----定时获取access_token并保存到redis中

    本人原本是想做微信公众号菜单的创建修改删除等操作的,但是发现需要access_token,通过阅读文档,发现文档要求有以下几点: 1.access_token 获取后有效期是2小时 2.access_ ...

  2. 微信小程序传值取值的几种方法

    一,列表index下的取值 实现方式是:data-index="{{index}}"挖坑及e.currentTarget.dataset.index来填坑即可 1.1生成值 < ...

  3. 【线程池】ExecutorService与quartz搭配出现的问题

    问题描述: 使用quartz定时推送微信公众号模板消息,一分钟推送一次,定时器里面使用了一个ExecutorService线程池,大小为5个. 批量获取数据之后,全部数据都被分配到n/5的线程池里面等 ...

  4. my购物车

    sum=0 a=input("请输入“水果”或“衣服”:") if a=="手机": while True: shop = { '蓝葡萄', '水蜜桃', '草 ...

  5. SQL_4_函数

    在SQL的函数中可以执行一些诸如对某一些进行汇总或将一个字符串中的字符转换为大写的操作等: 函数有:汇总函数.日期与时间函数.数学函数.字符函数.转换函数与其他函数. 汇总函数 这是一组函数,它们返回 ...

  6. 使用powershell/vbs自动化模拟鼠标点击操作

    今天想做windows上的自动化,所以才有了模拟鼠标点击的需求,先考虑用powershell实现: 首先先安装一个名为“WASP”免费可用的Powershell扩展程序,下载地址:http://was ...

  7. WPF使用异步+绑定的方式处理大数据量

    WPF的优势在于界面处理,即使是这样,在面对大数据量的时候也免不了界面假死,同一个线程里处理界面跟大数据量,这是不可避免的.解决办法还是有的,可以使用分页加载,虚拟加载,动态加载,增加条件限制... ...

  8. Django Model two

    Django_model: eg: class XXXX(models.Model): nid = models.AutoField(primary_Key=True) name = models.C ...

  9. STL学习笔记2--list

    List --- 双向列表 List是线性列表结构,数据查找需要一个接一个,不能直接得到元素地址,检索时间与目标元素的位置成正比.但是插入数据比较快,可以在任何位置插入数据或者删除数据.list特点是 ...

  10. rocketmq源码分析2-broker的消息接收

    broker消息接收,假设接收的是一个普通消息(即没有事务),此处分析也只分析master上动作逻辑,不涉及ha. 1. 如何找到消息接收处理入口 可以通过broker的监听端口10911顺藤摸瓜式的 ...