摘要:是什么基于内存有客户端和服务器端非关系型数据库应用场景是什么缓存队列数据持久存储如何安装如何启动如何关闭客户端如何启动下载解压编译安装服务启动注意这种方式启动使用的是默认配置通过启动参数告诉使用指定配置文件使用下面命令启动服务关
redis 是什么?
基于内存
有客户端和服务器端
NoSQL非关系型数据库
redis 应用场景是什么?缓存
队列
数据持久存储
redis 如何安装?如何启动?如何关闭?客户端如何启动?下载、解压、编译、安装
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
tar -xzvf redis-4.0.1.tar.gz
cd redis-4.0.1
make
cd src
make install PREFIX=/usr/local/redis
redis 服务启动
cd /usr/local/redis/bin
./redis-server
注意这种方式启动redis 使用的是默认配置通过启动参数告诉redis使用指定配置文件使用下面命令启动
./redis-server redis.conf
redis 服务关闭
cd /usr/local/redis/bin
./redis-cli shutdown
./redis-cli -h 127.0.0.1 -p 6379 shutdown #指定端口和主机
redis 客户端启动
如何创建一个Shell脚本来管理redis服务?如何让redis服务能自启动?cd /usr/local/redis/bin
./redis-cli
退出客户端 : quit
创建Shell脚本开启、关闭、重启redis服务
REDIS_SERVER="/usr/local/redis/bin/redis-server" REDIS_CONF="/usr/local/redis/etc/redis.conf" REDIS_CLIENT="/usr/local/redis/bin/redis-cli" start() { $REDIS_SERVER $REDIS_CONF } stop() { $REDIS_CLIENT shutdown } restart() { stop start } case "$1" in "start") start;; "stop") stop;; "restart") restart;; *) echo "nothing to do";; esac
添加服务作为自启动
如何调整 redis.conf 配置?设置为后台启动: daemonize yes
五种常用数据结构String
key-value结构,key是字符串,value可存储 字符串、整数、浮点数
List
key-value结构,但是value是个数组,里面存储的值可以重复,但有序
Hash
key-value结构,但是value是个数组,里面存储的值也是key-value结构,key是唯一的
Set
key-value结构,与List很相似,value也是个数组,里面存储的值不能重复,但无序
Sorted set
PHP如何安装redis扩展?key-value结构,但是value是个数组,里面存储的值是score-value-rank结构,rank是隐藏值(由redis自动维护),value是唯一的,只可以修改score
下载 phpredis 插件
wget https://codeload.github.com/phpredis/phpredis/tar.gz/3.1.4
使用phpize工具生成configure文件
php安装目录/bin/phpize
生成Makefile文件
./configure --with-php-config=/usr/local/php/bin/php-config
编译并安装
make && make install
在php.ini中加载redis.so文件
使用 phpredis 扩展如何操作 redis ?extension = redis.so
注意:phpredis的类都是在根命名空间下,所以使用phpredis类时,尽量在开头加/
连接
$redis = new Redis(); $redis -> connect("127.0.0.1", 6379);
操作String
$redis -> set("key1", "val1"); $val = $redis -> get("key1"); // "val1" $redis -> set("key1", 12); $redis -> incr("key1", 2); $val = $redis -> get("key1"); // "14"
操作List
$redis = new Redis(); $redis -> connect("127.0.0.1", 6379); $redis -> delete("list1"); $redis -> lPush("list1", "a"); $redis -> lPush("list1", "b"); $redis -> lPush("list1", "c"); $val = $redis -> rPop("list1");
操作Set
$redis = new Redis(); $redis -> connect("127.0.0.1", 6379); $redis -> delete("set1"); $redis -> sAdd("set1", "a"); $redis -> sAdd("set1", "b"); $redis -> sAdd("set1", "c"); $redis -> sAdd("set1", "c"); $len = $redis -> sCard("set1"); var_dump($len); //int(3) $arr = $redis -> sMembers("set1"); var_dump($arr); //无序的索引数组
操作Hash
$redis = new Redis(); $redis -> connect("127.0.0.1", 6379); $redis -> delete("person1"); $redis -> hSet("person1", "name", "mingming"); $redis -> hSet("person1", "age", 42); $redis -> hSet("person1", "gender", 1); $name = $redis -> hGet("person1", "name"); var_dump($name); //string(8) "mingming" $arr = $redis -> hMGet("person1", array("name","age")); var_dump($arr); //关联数组
操作sort set
$redis = new Redis(); $redis -> connect("127.0.0.1", 6379); $redis -> delete("zset1"); $redis -> zAdd("zset1", 100, "mingming"); $redis -> zAdd("zset1", 90, "xiaohong"); $redis -> zAdd("zset1", 98, "xiaoming"); $val = $redis -> zRange("zset1", 0, -1); //低到高 $val = $redis -> zRevRange("zset1", 0, -1); //高到低 ##输出的$val是索引数组redis 数据持久化
由于redis是基于内存来存储数据的,所以redis一旦重启或者系统崩溃,内存中的数据就会丢失,为了保证数据安全,所以需要把数据持久化存储到硬盘
如果仅仅当做缓存来使用,可以禁用redis持久化功能
redis提供两种持久化方法
1、快照持久化(默认开启,无需配置):数据安全性低,性能好 2、AOF持久化(需要配置):数据安全性高,性能差
快照持久化适用场景
只使用于那些即使丢失一部分数据也不会造成问题的应用程序
AOF持久化适用场景
用于对数据安全性要求高的应用程序
AOF持久化的三种同步策略
appendfsync always 每次写操作就进行同步(安全性最高) appendfsync everysec 每秒执行一次同步(推荐) appendfsync no 操作系统决定何时同步
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/25580.html
摘要:后端和移动性能优化需要的时间较长,出成果较慢。大型网站上,一般通过什么方式监控性能的用户端主要是真机监测监测,都属于真实用户监测。目前主要有以下两种类型,,最终用户性能监测。,,真实用户性能监测。 showImg(https://segmentfault.com/img/bVAbWm);@tanwen110 (唐文),曾负责腾讯四大平台之一网络媒体平台的整体运维、运营规划工作;曾任百度...
阅读 2414·2021-09-01 10:41
阅读 1438·2019-08-30 14:12
阅读 506·2019-08-29 12:32
阅读 2855·2019-08-29 12:25
阅读 2933·2019-08-28 18:30
阅读 1703·2019-08-26 11:47
阅读 972·2019-08-26 10:35
阅读 2585·2019-08-23 18:06