本文共 2386 字,大约阅读时间需要 7 分钟。
redis的常用场景:
1、缓存 2、队列 3、数据存储(当数据库用,因为Redis有非常完备的硬盘持久化机制,有2种持久化的机制,配合这2种持久化机制,我们可以把redis数据定期持久化到硬盘中)
源码编译方式的软件安装三部曲:
1、下载(找官网)、解压、进入解压后的目录
2、编译参数
3、make && make install安装
php扩展安装五步曲:
1、下载(找pecl)、解压、进入解压后的目录
2、使用php自带的二进制脚本phpize弄成可编译的
3、编译参数
4、make && make install安装
5、将扩展添加到php.ini中,重启php,看php -m中是否添加成功
redis和memcache的区别:
1、memcache重启后数据丢失
2、redis不会,redis持久化
官网:https://redis.io/
wget http://download.redis.io/releases/redis-3.2.11.tar.gz //1、下载
tar xf redis-3.2.11.tar.gz //解压
cd redis-3.2.11 //切换进解压的目录
#不需要编译(官网上也是这样写的)
make PREFIX=/usr/local/redis install //2、安装
mkdir /usr/local/redis/etc //创建配置文件的目录
cp redis.conf /usr/local/redis/etc/ //将当前目录下的 配置文件 移动到新目录下
启动 redis
注意:不用配置文件也可以启动
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf #用配置文件启动
bind 127.0.0.1 #和memcache那一样,只允许在这个ip上登录:启动走配置文件才会变成该ip
daemonize yes #前台启动还是后台启动,一般是后台需改成yes
pidfile /var/run/redis_6379.pid #启动后,存放pid的地方
databases 16 #默认有16个数据库
下面900、300、60是redis的保存算法:
save 900 1 #900秒(15分钟)内有1个更改(写入),就保存一遍
save 300 10 #300秒(5分钟)内有10个更改(写入),
save 60 10000 #60秒内有10000个更改(写入)
指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。
dbfilename dump.rdb #指定本地数据库文件名,默认值为dump.rdb,
dir ./ #指定本地数据库存放目录(不用6379默认端口,这个就不生效)
注意:备份dump.rdb(因为redis的数据是持久化)。
复制一份,啥时候需要在复制过来,然后重启redis
which 是查看指令对应的可以执行程序文件位置
原因:默认登录的是本机(也就是默认配置文件)的6379端口
登录远端的机子需要加 -h -p
Info = 查看redis-server的当前状态
确实是我们刚才配置的没问题
每种数据类型都有对应的一系列操作
字符串类型:
只有整数才能使用自增和减
总结:1个key对应多个值(相当于1维的索引数组)
原则:先入先出。不要求元素(值)是唯一的
1、添加
2、删除
3、元素(值)是否存在
和list的区别:
1、list:有序,元素(值)不需要唯一
2、Set:无序,必须唯一
增、删、改、查、自增、自减
有序分数集合(看成是排行榜)
分数(score)和元素(value)的映射
每个同学(元素)都有自己的分数
每个同学(元素)还有个排行(rank)的属性,从0(最小)开始,他的分数也是最少的,随着分数增大,排名也会变大
经常弄混的2点:
1、元素必须是全局唯一,如果同学A是10.1分,在给同学A设置成9.1,不会追加,而是会覆盖10.1。这时候就会出现2个分数(同学A和同学B)10.1的
2、如果2个元素的score是一样的,按照value的字典顺序进行排序
官网地址: 扩展都在这里下载
TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。
NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。
wget //1、下载
tar xf redis-3.1.6.tgz //解压
cd redis-3.1.6 //切换
/usr/local/php/bin/phpize //2、php的二进制脚本 phpize,生成可编译的参数
./configure --with-php-config=/usr/local/php/bin/php-config //3、编译参数
make && make install //4、安装
配置php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/" #如果配置文件中已经有这个了,就不用写这个了
extension = redis.so //5、将扩展添加到配置文件中
接下来就是使用redis类库来写代码了,可以参考我这篇博文