Redis

数据库分类

  • 关系型数据库:MySQL、SQL server、oracle、…
  • 非关系型数据库(NoSQL):Redis、MongoDB、CouchDB、Memcached(也算)

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值