Redis安装使用

来源:互联网 发布:企业即时聊天软件 编辑:程序博客网 时间:2024/06/05 19:11

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的所有特征,但是比其更强大,是超级增强版的memcached2.可以做到数据的安全存储,能够进行持久化存储,支持事务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/rediscp 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=6379EXEC=/usr/local/redis/src/redis-serverCLIEXEC=/usr/local/redis/src/redis-cliCONF="/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 redis2.使用客户端连接 /usr/local/redis/src/redis-cli连接参数:    --help:获取帮助    -h:指定主机    -p:指定端口号    -a:指定密码redis-cli [-h 127.0.0.1] [-p 6379]127.0.0.1:6379> pingPONGquit    #退出3.密码管理,默认是没有密码的,使用密码有以下两种方式1.单次有效,通过命令设置    获取密码:config get requirepass    设置密码:config set requirepass 123456    密码授权:auth 1234562.永久生效,修改配置文件 /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 = redissession.save_path = "tcp://127.0.0.1:6379?auth=123456"说明:auth是有密码才需要,若有多台服务器,可以使用weight参数指定权重

Redis主从复制

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

Redis与Memcached对比

对比项 memcached redis 持久化存储 不支持 支持 库支持 不支持 支持 数据类型 简单 多种 主从复制 不支持 支持 集群 不支持 支持 事务 不支持 支持 线程 多线程 单线程 最大item 最小1K,最大128M,默认1M 512M 最大Key define KEY_MAX_LENGTH 250 512M
原创粉丝点击