Linux 之 Redis
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的更多相关文章
- Linux下Redis的安装和部署
一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...
- Linux下Redis服务器安装配置
说明:操作系统:CentOS1.安装编译工具yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...
- linux下Redis与phpredis扩展安装
++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...
- windows下和linux下 Redis 安装
Redis 是一个高性能的key-value数据库, 使用内存作为主存储,数据访问速度非常快,当然它也提供了两种机制支持数据持久化存储.比较遗憾的是,Redis项目不直接支持Windows,Windo ...
- linux上redis安装配置及其防漏洞配置及其攻击方法
Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令: yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...
- linux安装redis(转)
一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...
- linux安装redis标准流程-按这个来
1.将下载好的压缩包放到/usr/local目录下# tar xzf redis-3.2.9.tar.gz # cd redis-3.2.9 # make 提示错误 make: cc: Command ...
- Linux中redis安装配置及使用详解
Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...
- Linux安装redis服务器
Linux安装redis服务器 初次接触,这里简单的说下我遇到的情况以及安装方法,当然也是参考了诸位大神的. 确定虚拟机的主机IP. 1)首先需要一个linux虚拟机,确定虚拟机的ip ,输入命令:# ...
- Linux配置Redis外网访问
下载:redis-3.2.5.tar.gz 拷贝到指定目录解压:tar -xzvf redis-3.2.5.tar.gz 进入到解压目录redis-3.2.5下安装: makemake install ...
随机推荐
- 【数位dp】bzoj3131: [Sdoi2013]淘金
思路比较自然,但我要是考场上写估计会写挂:好像被什么不得了的细节苟住了?…… Description 小Z在玩一个叫做<淘金者>的游戏.游戏的世界是一个二维坐标.X轴.Y轴坐标范围均为1. ...
- 【linux】【安全】服务器安全建议
引用自 <鸟哥的linux私房菜-服务器篇> http://cn.linux.vbird.org/linux_server/0210network-secure_1.php 建立完善的登 ...
- Python之路-时间模块
time模块 import time 时间戳(time.time())--结构化时间(time.localtime)--字符串时间(time.strftime) import time print(t ...
- (转).gitignore详解
本文转自http://sentsin.com/web/666.html 今天讲讲Git中非常重要的一个文件——.gitignore. 首先要强调一点,这个文件的完整文件名就是“.gitignore”, ...
- 在SCIKIT中做PCA 逆变换 -- 新旧特征转换
PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...
- Java装饰者模式(Decorator)
一.定义 装饰模式的设计理念主要是以对客户端透明的方式动态扩展对象的功能,是继承关系的一个替代(继承会产生大量的子类,而且代码有冗余).装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展.装饰 ...
- Win磁盘MBR转换为GUID
title: Win磁盘MBR转换为GUID date: 2018-09-02 11:52:32 updated: tags: [windows,记录,折腾] description: keyword ...
- loj2280 「FJOI2017」矩阵填数
状压 dp.参考there #include <algorithm> #include <iostream> #include <cstring> #include ...
- 2.新手必须掌握的Linux命令
第2章 新手必须掌握的Linux命令 章节简述: 本章首先介绍系统内核和Shell终端的关系与作用,然后介绍Bash解释器的4大优势并学习Linux命令的执行方法.经验丰富的运维人员可以通过合理地组合 ...
- 如何在官网下载Spring jar包
该链接里面讲的很仔细! http://blog.csdn.net/frankarmstrong/article/details/69808813