PHPRedis入门笔记
来源:互联网 发布:sql 添加自增列 编辑:程序博客网 时间:2024/06/05 12:47
Redis
- 非关系型数据库
- 基于内存存在,所以相对于MySQL等运行速度更快
- 与MySQL相比,无需定义数据字典
- 是远程的,分Server端和Client端,通过Redis自定义的协议传输与交互,通常我们所说的Redis都是Server端
- 应用场景
- 缓存
- 队列(pop,push)
- 数据存储(通过硬盘持久化机制)
安装
安装环境
- Linux CentOS 6.8
- 需要预装软件(gcc、tcl)(yum install即可)
- 步骤
- 下载Redis源码 wget http://download.redis.io/releases/(具体需要哪个版本自行选择)
- 解压并cd到目录中
- make && make install (将会放到usr/local/bin下)
- cp 安装目录/redis.conf 到 你要放置的目录(备份一下原配置文件,可以在该目录下修改配置文件,启动redis时可以使用该配置文件,或者你直接使用安装目录下的配置文件也可以)
- redis.conf 中的设置
daemonize = no
改为daemonize = yes
(no:前台启动 yes:后台启动)port = 7200
(修改端口为7200) 启动redis(以/目录/redis.conf这个配置文件启动)
sudo /usr/local/bin/redis-server /目录/redis.conf
查看redis是否已启动
ps aux | grep redis-server
- 客户端登录,本机登录默认以6379端口登录,因为有修改了端口,所以需要在登录时指定登录端口
redis-cli -h 127.0.0.1 -p 7200
info
# 查看redis的信息
Redis数据类型
String 格式:key->value(sting、int、float)
set string1 test1
# 设置一条数据,key为string1,value为test1get string1
# 获取string1的值set string2 4
get string2
# 得到4incr string2
# 自增1操作get string2
# 得到5decrhy string2 2
# 自减2操作get string2
# 得到3
List(有序列表)
- 格式:key->value(12)(左)->value(13)->value(13)->value(14)(右)
- 队列:左边推入,右边弹出
lpush list1 12
# 从左边推入一个元素 l(left):左边 push:推入lpush list1 13
rpop list1
# 从右边弹出一个元素,得到12(先入先出)lpush list12
|lpush list2 13
|lpush list 13
# 推入2个相同的元素llent list2
查看list元素的个数(得到3)
Set(无序的方式存储多个不同的元素,每个元素的值都不一样)
sadd set1 12
# 添加一个set元素sadd set1 13
sadd set1 13
# 添加2个相同的set元素scard set1
# 查看set中有多少个元素(得到2个元素,说明value值不允许重复,必须唯一)sismember set1 13
# 查看13是否存在于这个set中srem set1 13
# 将13这个元素从set中移除
Hash(散列类型,将多个键值对存到一个redis键里)
- 格式:key -> key1=>value1 / key2=>value2 / key3=>value3 / key4=>value4
hset hash1 key1 12
hset hash1 key2 13
hset hash1 key3 13
# 设置一个hash元素,只要求key不一样,value值可以一样hget hash1 key1
# 获取hash元素中一个键的值(3个)hlen hash1
# 获取hash元素的个数hmget hash1 key1 key2 key3
# 一次性获取多个元素的值
Sort Set
- 格式:key->score(浮点数)=>value(string/int/float)=>rank(int)
- value必须全局唯一,如果设置相同的value值,不会增加一个元素,会修改score的值。
zadd zset1 10.1 val1
# 向sort set中添加一个元素zadd zset1 11.2 val2
zadd zset1 9.2 val3
zcard zset1
# 查看zset1中有几个元素zrange zset1 0 2 withscores
# 获取排名0-2的排名,带分数zrank zset1 val2
# 查看val2 在 zset1 中的排名zadd zset1 12.2 val3
# 将val3的score改为12.2zadd zset1 12.2 val2
zrange zset1 0 2 withscores
# 获取排名0-2的排名,带分数。val2和val3de分数一样,但是val2中的val等于val3中的val,2小于3,所以val2的排名高于val3
PHP操作Redis
[root@localhost ~]# php -m
查看PHP当前安装的扩展,查看是否已安装redis扩展[root@localhost ~]# which phpize
查看phpize命令的位置[root@localhost ~]# which php-config
查看php-config 命令的位置- 下载php-redis扩展,安装并打开扩展 (点击查看更多PHP-Redis操作)
[root@localhost ~]# git clone https://github.com/phpredis/phpredis.git # 从GitHub上把PHP-Redis代码下载下来[root@localhost ~]# cd phpredis[root@localhost ~]# phpize[root@localhost ~]# ./configure --with-php-config=/usr/local/php/bin/php-config[root@localhost ~]# make && make install[root@localhost ~]# vim /usr/local/php/etc/php.ini # 开启 phpredis扩展[root@localhost ~]# php -m # 查看redis扩展是否已打开[root@localhost ~]# cd /data/wwwroot/redis # 进入www目录下的redis目录[root@localhost ~]# vim connect.php
- string操作
<?php $redis = new \Redis(); $redis->connect('127.0.0.1');// 默认6379端口,如果你修改了端口,则为 $redis->connect('127.0.0.1',7200); // string 操作 $redis->set('string1','value1');s $val = $redis->get("string1"); echo $val; echo PHP_EOL; $redis->set('string1',4); $val = $redis->get('string1'); echo $val; echo PHP_EOL; $redis->incr('string1',2); $val = $redis->get('string1'); echo $val;
- list操作
<?php $redis = new \Redis(); $redis->connect('127.0.0.1'); // list 操作 $redis->lPush("list1", "A"); // 从左边推入A $redis->lPush("list1", "B"); // 从左边推入B $redis->lPush("list1", "C"); // 从左边推入C $val = $redis->rPop("list1"); // 从右边弹出 echo $val; // 遵循先入先出的原则,未弹出前,list的数值 为 C,B,A 使用rPop则弹出 A
- set操作
<?php $redis = new \Redis(); $redis->connect('127.0.0.1'); // set 操作 $redis->sAdd('set1', "A"); $redis->sAdd('set1', "B"); $redis->sAdd('set1', "C"); $redis->sAdd('set1', "C"); // 由于set中元素必须唯一,所以实际上只插入了3个元素 $val = $redis->sCard("set1"); var_dump($val); // 3 $val = $redis->sMembers("set1"); var_dump($val); /** * array(3) { * [0] => string(1) "A" * [1] => string(1) "B" * [2] => string(1) "C" * } */
- hash操作
<?php $redis = new \Redis(); $redis->connect('127.0.0.1'); // hash 操作 // 设置driver1的name $redis->hSet('driver1', 'name', 'jack'); // 设置driver1的age $redis->hSet('driver1', 'age', 25); // 设置driver1的sex $redis->hSet('driver1', 'sex', 1); // hGet - 获取driver1的name值 $val = $redis->hGet('driver1', 'name'); var_dump($val); // hMGet - 获取driver1的多个key的值 $val = $redis->hMGet('driver1', array('name','age')); var_dump($val);
- sort set操作
<?php $redis = new \Redis(); $redis->connect('127.0.0.1'); // sort set操作 // 往key值为zset1添加数据 $redis->zAdd('zset1', 90, 'userA'); // rank:2 $redis->zAdd('zset1', 99, 'userB'); // rank:1 $redis->zAdd('zset1', 70, 'userC'); // rank:4 $redis->zAdd('zset1', 80, 'userD'); // rank:3 // zRange(key, start, end); $val = $redis->zRange('zset1', 0, -1); // 从低到高 var_dump($val); $val = $redis->zRevRange('zset1', 0, -1); // 从高到低 var_dump($val);
阅读全文
1 0
- PHPRedis入门笔记
- PHPredis学习笔记
- phpredis
- phpredis
- 【学习笔记】Redis及PHPRedis安装
- phpredis参考手册
- phpredis 手册
- phpredis使用方法
- phpredis使用方法
- 安装phpredis
- phpredis使用方法
- PHPredis初探
- phpredis文档
- 安装phpredis
- phpredis 安装
- 安装phpredis
- Linux_redis/phpredis
- 配置phpredis
- 下一阶段的一些想法
- Mysql中的MVCC
- miui8.5开发者选项USB调试模式
- MySQL删除普通用户
- 242. Valid Anagram
- PHPRedis入门笔记
- lua-7 io/异常/调试/垃圾回收
- Hibernate对象关系映射常用标签(二)
- 什么是事件流?
- html css关联选择器和组合选择器
- 备注
- OSGI 初学心得整理
- 虚拟机安装和管理
- mysql和mysqli区别