您的位置:首页 > 数据库 > Redis

Redis安装使用

2017-10-06 16:54 363 查看

Redis安装使用

下载地址

https://pan.baidu.com/s/1eR4yYI2#list/path=%2F%E5%88%86%E4%BA%AB%2FLinux%2FRedis&parentPath=%2F%E5%88%86%E4%BA%AB

Redis简介

说明

1.也是类似于memcached的Key-Value存储机制
2.是非关系型数据库的一种
3.官网:redis.io,中文网:redis.cn


特点

1.能够持久化存储数据
2.支持更多的数据类型
3.支持集群,主从同步


优点

1.具有memcached的所有特征,但是比其更强大,是超级增强版的memcached
2.可以做到数据的安全存储,能够进行持久化存储,支持事务
3.拥有更多的数据类型,可以进行复杂的运算
4.可以胜任memcached不能完成的更加复杂的业务场景


Redis安装

解压:tar -zxvf redis-4.0.1.tar.gz

复制:cp -R redis-4.0.1 /usr/local/redis

进入:cd /usr/local/redis

安装:make install

服务:

cd /usr/local/redis/src,该目录下有两个可执行文件,若有必要可以将改目录添加到$PATH环境变量中
客户端:redis-cli
服务端:redis-server
启动测试:./redis-server   #默认不会后台执行,需要修改配置文件


修改配置

cd /usr/local/redis
cp redis.conf redis_6379.conf #拷贝配置文件
修改配置文件redis_6379.conf为:daemonize yes  #后台执行
cd utils  #进入目录
cp redis_init_script redis_init_script_6379       #拷贝启动脚本
修改启动脚本redis_init_script_6379如下:
REDISPORT=6379
EXEC=/usr/local/redis/src/redis-server
CLIEXEC=/usr/local/redis/src/redis-cli
CONF="/usr/local/redis/redis_${REDISPORT}.conf"
./redis_init_script_6379 start        #启动服务


开机启动

修改用户开机启动配置文件:/etc/rc.local
/usr/local/redis/utils/redis_init_script_6379 start


服务测试

1.查看进程:ps aux | grep redis
2.使用客户端连接 /usr/local/redis/src/redis-cli
连接参数:
--help:获取帮助
-h:指定主机
-p:指定端口号
-a:指定密码
redis-cli [-h 127.0.0.1] [-p 6379]
127.0.0.1:6379> ping
PONG

quit    #退出
3.密码管理,默认是没有密码的,使用密码有以下两种方式
1.单次有效,通过命令设置
获取密码:config get requirepass
设置密码:config set requirepass 123456
密码授权:auth 123456
2.永久生效,修改配置文件 /usr/local/redis/redis_6379.conf
requirepass 123456
说明:不指定密码也可以连接成功,但是什么权限都没有


Redis命令

常用:

ping:测试连接情况,返回PONG表示正常
quit:退出
auth:指定密码
select:选择库,总共16个,0~15,默认在第0个
info:查看服务器信息
command:查看能够使用的命令
flushdb:清空当前库
flushall:清空所有库
save:前台持久化操作
bgsave:后台持久化操作
exists:判断键是否存在
del:删除指定的键


字符串(string)

get:获取
set:设置
getset:获取后设置
mset:设置多个
mget:获取多个
incr:递增(加1)
incrby:指定幅度的递增
incrbyfloat:指定幅度的递增一个浮点数
decr:递减(减1)
decrby:指定幅度的递减
append:追加


哈希(hash)

hdel:删除
hexists:判断是否存在
hget:获取
hgetall:获取所有
hkeys:获取所有的键
hvals:获取所有的值
hlen:获取数量
hset:设置
hmget:获取多个
hmset:设置多个


列表(list)

lpush:从左边插入数据
lrange:显示某个范围内的数据,lrange m6 0 -1,表示显示全部数据
lpop:从左边弹出数据
rpush:从右边插入数据
rpop:从右边弹出数据
llen:显示个数


无序集合(set):不能重复

sadd:添加数据
scard:个数统计
sdiff:计算差集
sinter:计算交集
sismember:判断数据是否在集合中
smembers:返回所有元素
smove:移动元素
spop:随机移除元素,可以指定个数
srandmember:随机返回一个元素,但是不移除
srem:移除元素


有序集合(sorted set)

zadd:添加元素
zcard:统计元素
zcount:指定区间统计
zrange:返回索引区间内的值
。。。。


安装phpredis

解压:unzip phpredis-php7.zip
进入:cd phpredis-php7
解压:phpize
配置:./configure --with-php-config=/usr/local/php7/bin/php-config
编译:make
安装:make install
修改php配置文件:将上一步编译的动态库添加到/usr/local/php7/etc/php.ini
extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/redis.so
重启PHP服务:service php-fpm restart
测试:写一个phpinfo(),查看是否有redis扩展
代码测试:
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('123456');
$redis->set('test','ok');
可以参考github或提供的中文手册


持久化存储

redis持久化存储有两种方式:RDB和AOF。RDB是写存储文件,AOF是将执行的命令记录到文件中;若没有进行持久化操作,redis与memcached是一样的,相当于基于内存数据库。

RDB,Redis DataBase,将数据写入临时文件,做持久化操作时将临时文件替换原有的。

优点:持久化操作会单独启动一个子进程,主进程不会对其有任何IO,可以保证数据的安全可靠
缺点:持久化操作是有间隔的,那么在此期间出现问题,可能会导致数据的丢失。因此,该方式不严谨
配置:
dbfilename dump.rdb         #保存的数据库
dir ./                      #保存位置
save 900 1              #更改了1个key,900秒后自动持久化存储
save 300 10             #更改了10个key,300秒后自动持久化存储
save 60 10000           #更改了10000个key,60秒后自动持久化存储
说明:使用save进行save进行前台保存,使用bgsave进行后台保存,重启服务即可从dump.rdb中恢复数据


AOF,Append Only File,是将执行的命令记录下来,重新执行命令即可完成数据恢复

优点:可以保持更高的数据完整性
缺点:AOF比RDB文件大得多,且恢复慢
配置:
appendonly yes                      #开关,默认是关闭的
appendfilename "appendonly.aof"     #保存文件
appendfsync everysec|always|no      #同步频率,每秒|立即|从不(完全依赖OS)
自动重写配置:两个条件同时满足才会触发AOF重写操作
auto-aof-rewrite-percentage 100     #新命令占原文件的百分比
auto-aof-rewrite-min-size 64mb      #本次重写的最小数据量
手动重写:bgrewriteaof
说明:数据恢复时首先从AOF,若没有开启则从RDB中恢复,两者同时使用没有冲突


Redis保存Session

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379?auth=123456"
说明:auth是有密码才需要,若有多台服务器,可以使用weight参数指定权重


Redis主从复制

主机配置:
#bind 127.0.0.1         #注释掉
从机配置:
slaveof 主机IP 主机端口
masterauth 主机li连接密码


Redis与Memcached对比

对比项memcachedredis
持久化存储不支持支持
库支持不支持支持
数据类型简单多种
主从复制不支持支持
集群不支持支持
事务不支持支持
线程多线程单线程
最大item最小1K,最大128M,默认1M512M
最大Keydefine KEY_MAX_LENGTH 250512M
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: