安装
1.一定要搞懂自己php的版本,和环境,今天试一上午,就是因为X86,而我的php环境是X64.
2. 将下载的php_redis.dll和php_igbinary.dll放在php扩展目录中(ext),并修改配置文件php.ini
extension=php_igbinary.dll
extension=php_redis.dll
3.重新启动服务
常用操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | <?php //PHP操作redis /*链接redis*/ $redis = new redis(); $result = $redis ->connect( '127.0.0.1' , 6379); /*set 设置 key的值*/ $result = $redis ->set( 'key' , "abc" ); /*get 获取key的值*/ $result = $redis ->get( 'key' ); var_dump( $result ); //string 'abc' (length=3) /*delete 删除指定的key*/ $redis ->set( 'test' , "123456" ); $redis -> delete ( 'test' ); var_dump( $redis ->get( 'test' )); //boolean false /*setnx 如果数据库中不存在key键,生成key键*/ $redis ->setnx( 'test2' , "22222222" ); var_dump( $redis ->get( 'test2' )); //string '22222222' (length=8) /*exists 验证key是否存在*/ var_dump( $redis ->exists( 'test2' )); //boolean true /*incr 递增数据*/ $redis ->set( 'test' , "123" ); var_dump( $redis ->incr( "test" )); //int 124 /*decr 递减数据*/ var_dump( $redis ->decr( "test" )); //int 123 /*getMultiple 给参数数组赋值*/ $redis ->set( 'test1' , "1" ); $redis ->set( 'test2' , "2" ); var_dump( $redis ->getMultiple( array ( 'test1' , 'test2' ))); //array (size=2) 0 => string '1' (length=1) 1 => string '2' (length=1) /*lpush 由列表头部添加字符串值。如果不存在该键则创建该列表*/ $redis -> delete ( 'test' ); var_dump( $redis ->lpush( "test" , "111" )); //结果:int(1) var_dump( $redis ->lpush( "test" , "abc" )); //结果:int(2) /*rpush 由列表尾部添加字符串值。如果不存在该键则创建该列表。*/ var_dump( $redis ->rpush( "test" , "333" )); //结果:int(3) var_dump( $redis ->rpush( "test" , "444" )); //结果:int(4) /*lpop 返回和移除列表的第一个元素*/ var_dump( $redis ->lpop( "test" )); //string 'abc' (length=3) /*lsize,llen 返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。*/ var_dump( $redis ->lsize( "test" )); //int 3 /*lget 返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二*/ var_dump( $redis ->lget( "test" ,0)); //string '111' (length=3) /*lset 为列表指定的索引赋新的值*/ var_dump( $redis ->lset( "test" ,0, "333" )); //boolean true /*lgetrange 返回在该区域中的指定键列表中开始到结束存储的指定元素*/ print_r( $redis ->lgetrange( "test" ,0,-1)); // Array ( [0] => 333 [1] => 333 [2] => 444 ) /*lremove 从列表中从头部开始移除count个匹配的值。 key count*/ var_dump( $redis ->lremove( 'test' , '333' ,1)); print_r( $redis ->lgetrange( 'test' , 0, -1)); // Array ( [0] => 333 [1] => 444 ) /*sadd 为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。*/ var_dump( $redis ->sadd( 'bigtest' , '111' )); var_dump( $redis ->sadd( 'bigtest' , '333' )); print_r( $redis ->sort( 'bigtest' )); //Array ( [0] => 111 [1] => 333 ) /*sremove 删除Key中指定的value值*/ $redis ->sremove( 'bigtest' , '111' ); print_r( $redis ->sort( 'bigtest' )); //Array ( [0] => 333 ) /*smove 将Key1中的value移动到Key2中*/ $redis -> delete ( 'test' ); $redis -> delete ( 'test1' ); $redis ->sadd( 'test' , '111' ); $redis ->sadd( 'test' , '333' ); $redis ->sadd( 'test1' , '222' ); $redis ->sadd( 'test1' , '444' ); $redis ->smove( 'test' , "test1" , '111' ); print_r( $redis ->sort( 'test1' )); //Array ( [0] => 111 [1] => 222 [2] => 444 ) /*scontains 检查集合中是否存在指定的值*/ var_dump( $redis ->scontains( 'test1' , '111' )); //boolean true /*ssize 返回集合中存储值的数量*/ echo $redis ->ssize( 'test1' ); //3 /*spop 随机移除并返回key中的一个值*/ var_dump( $redis ->spop( "test1" )); /*sinter 返回一个所有指定键的交集。*/ var_dump( $redis ->sinter( "test" , "test1" )); //empty /*sinterstore 把结果储存到新建的变量中*/ var_dump( $redis ->sinterstore( 'new' , "test" , "test1" )); /*sunion 返回一个所有指定键的并集*/ print_r( $redis ->sunion( "test" , "test1" )); /*sunionstore 把结果储存到新建的变量中*/ var_dump( $redis ->sunionstore( 'new' , "test" , "test1" )); //int 3 /*sdiff 返回第一个集合中存在并在其他所有集合中不存在的结果*/ print_r( $redis ->sdiff( "test" , "test1" )); //Array ( [0] => 333 ) /*sdiffstore 执行sdiff命令并把结果储存到新建的变量中*/ var_dump( $redis ->sdiffstore( 'new' , "test" , "test1" )); //int 1 /*smembers, sgetmembers 返回集合的内容*/ print_r( $redis ->smembers( 'test1' )); //Array ( [0] => 111 [1] => 444 ) ?> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?