Redis

一、使用PHP操作Redis存储系统中的各类数据类型方法

  1.String(字符串)操作

 <?php

 // 1. 实例化
$redis = new Redis; // 2. 连接 redis
$redis->connect('localhost',6379); // 3. 选择数据库
$redis->select(15); // 字符串类型
// 添加数据
$redis->set('name','张三');
// 设置添加数据的生命周期
$redis->set('age','李四',10);
// 添加多个数据
$arr = ['name'=>'李四','age'=>18];
$redis->mset($arr);
// 增加一个新值(不存在的)
$redis->setnx('height','180cm');
// 删除数据
$redis->delete('name');
// 修改数据(自增 递减)
$redis->incr('num');
$redis->incrby('num',12);
$redis->decr('num');
$redis->decrby('num',10);
// 获取值
// 获取单个值
$res = $redis->get('num');
var_dump($res);
// // 获取多个值
$res = $redis->mget(['num','age','height']);

PHP操作Redis中String数据类型

  2.List(链表 / 列表)操作

 <?php

 // 实例化 redis
$redis = new Redis; // 连接 redis 服务器
$redis->connect('localhost',6379); // 选择数据库
$redis->select(1);
// redis 中 list 列表数据的处理
// 添加数据
$redis->lpush('list1','苹果');
$redis->lpush('list1','香蕉');
// 从右侧添加数据
$redis->rpush('list1','apple');
$redis->rpush('list1','小米'); // 删除数据
// 将数据弹出列表
$redis->lpop('list1');
$redis->rpop('list1');
// 将数据移出列表
$redis->lrem('list1','苹果',2); // 修改数据
$redis->lset('list1', 1,'苹果');
$redis->lset('list1',-2,'apple');
$redis->rpoplpush('list1','list2'); // 查询数据
$res = $redis->lindex('list1',0);
$res = $redis->lindex('list2',-1);
$res = $redis->lrange('list2',0,-1);
$res = $redis->lsize('list1');
var_dump($res);

PHP操作Redis中list数据类型

  3.Set(集合)操作

 <?php

 // 实例化
$redis = new Redis();
// 连接 redis
$redis->connect('localhost',6379);
// 选择数据库
$redis->select(1);
// 对集合操作
// 增加数据(集合中的数据不能重复)
$redis->sadd('s1','a','b','c','d'); // 删除数据
$redis->srem('s1','a'); // 修改集合成员
$redis->smove('s1','s2','c'); // 查询数据
$res = $redis->smembers('s1');
$res = $redis->ssize('s1');
$res = $redis->srandmember('s1'); // 两集合的交集
$res = $redis->sinter('s1','s2');
// 两集合的差集
$res = $redis->sdiff('s1','s2');
// 两集合的并集
$res = $redis->sunion('s1','s2');
// 检测是否是集合成员
$res = $redis->sismember('s1','a');
var_dump($res);

PHP操作Redis中Set数据类型

  4.Zset(有序集合)操作

 <?php

 // 实例化
$redis = new Redis;
// 连接 redis
$redis->connect('localhost',6379);
// 对有序集合的操作
// 添加数据
$redis->zadd('z1',1,'张三');
$redis->zadd('z1',2,'李四');
$redis->zadd('z1',3,'王五');
$redis->zadd('z1',4,'赵六');
$redis->zadd('z1',5,'田七');
$redis->zadd('z1',20,'王八');
$redis->zadd('z1',50,'敬酒');
$redis->zadd('z1',100,'牛十'); // 删除数据
$redis->zrem('z1','敬酒'); // 修改数据的分数
$redis->zincrby('z1',3,'王五'); // 获取数据
$res = $redis->zrange('z1',0,-1);
$res = $redis->zrevrange('z1',0,-1);
$res = $redis->zrangebyscore('z1',10,50,['withscore'=>true,'limit'=>[0,3]]);//根据分数获取元素并可限制取出元素数量,正序
$res = $redis->zrevrangebyscore('z1',50,10,['withscore'=>true,'limit'=>[0,3]]);//根据分数获取元素并可限制取出元素数量,倒数
// 获取元素个数
$res = $redis->zcount('z1',10,50);
$res = $redis->zsize('z1');
$res = $redis->zrank('z1','王八');
$res = $redis->zscore('z1','王八');
var_dump($res);

PHP操作Redis中Zset数据类型

  5.Hash(哈希型)操作

 <?php

 // 实例化
$redis = new Redis;
// 连接 redis
$redis->connect('localhost',6379);
// 对哈希数据操作
// 添加数据
$redis->hset('h1','age',80);
$redis->hmset('h1',['sex'=>'man','height'=>'180cm']); // 添加递增
$redis->hincrby('h1','num',1); // 删除数据
$redis->hdel('h1','name'); // 查询单个 hash 值
$res = $redis->hget('h1','age');
// 批量查询 hash 值
$res = $redis->hmget('h1',['age','sex','height']);
// 获取所有 hash 值
$res = $redis->hgetAll('h1');
// 获取 hash 表元素总个数
$res = $redis->hlen('h1');
// 获取 hash 表元素所有键名
$res = $redis->hkeys('h1');
// 获取 hash 表元素所有值
$res = $redis->hvals('h1');
// 判断 hash 表中是否存在某键名
$res = $redis->hexists('h1','name');
var_dump($res);

PHP操作Redis中Hash数据类型

  6.操作Redis数据的通用方法

 <?php

 // 实例化
$redis = new Redis;
// 连接 redis
$redis->connect('localhost',6379);
// 清空当前数据库
$redis->flushdb();
// 清空 redis 所有数据库数据
$redis->flushAll(); // 设置 / 修改数据
$redis->set('name','admin');
// 设置该键值的生命周期
$redis->expire('name',40);
// 获取某键名生命周期
$res = $redis->ttl('name'); // 检测是否存在某数据
$res = $redis->exists('name');
// 获取当前数据库所有键
$res = $redis->keys('*');
var_dump($res);

PHP操作Redis数据的通用方法

Redis学习笔记(二) ---- PHP操作Redis各数据类型的更多相关文章

  1. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

  2. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  3. Redis学习笔记(1)——Redis简介

    一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...

  4. Redis学习笔记(3)——Redis的命令大全

    Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...

  5. Redis学习笔记(三)Redis支持的5种数据类型的总结

    继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...

  6. Redis 学习笔记系列文章之 Redis 的安装与配置 (一)

    1. 介绍 Redis is an open source (BSD licensed), in-memory data structure store, used as database, cach ...

  7. redis 学习笔记二

    redis启动: 直接 redis-server.exe 启动服务,是按照redis默认配置启动的,如果想按照自己的配置文件启动,要加上 redis-server.exe  redis.windows ...

  8. Redis学习笔记二

    学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而需要设计到对象的序列化和反序列化.java序 ...

  9. 2019/1/10 redis学习笔记(二)

    本文不涉及集群搭建操作 关于在lua脚本中操作redis的应用场景 大家都知道redis对于单个集合的操作是原子性的;但是有可能有一种场景是这样.比如说抢红包,现在有十个人抢五份红包,抽象到我们jav ...

  10. Swoft2.x 小白学习笔记 (二) --- mysql、redis

    介绍swoft中 1.mysql. 2.Redis 一.mysql使用: 1.配置,在 app\bean.php文件中 'db' => [ 'class' => Database::cla ...

随机推荐

  1. c语言-折半查找的函数

    void search(int n,int num[],char name[N][10]) { int top,bottom,middle,location,flag; top=0; bottom=N ...

  2. python学习笔记1.4

    注释不被程序执行的辅助性说明信息- 单行注释:以#开头,其后内容为注释# 这里是单行注释- 多行注释:以'''开头和结尾''' 这是多行注释第一行这是多行注释第二行 ''' 保留字and elif i ...

  3. 常见浏览器hack汇总

    1.背景渐变bug: ①.ie8 ie9:用滤镜的方式解决: -ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientT ...

  4. Codeforces - 914C 数位DP

    题意有点难以描述,简略的就是给定一个二进制\(n\),每一步操作能使\(n\)的位为1的数的和转化为一个十进制,然后转化为该数的二进制再进行相同的操作 查询\([0,n]\)中操作数恰好为\(k\)的 ...

  5. vue-cli项目启动遇到的坑

    利用 npm init webpack projectname 之后 切换到项目所在文件夹下,执行命令 npm install ,一直非常慢,卡在那里基本不动. 最后是利用cnpm 安装成功的. 转载 ...

  6. 一个迷你的 Node.js 基于 Express 的 MVR 模式的 API工程 的分析

    1. 工程说明 该工程是基于 Express 库,编写的一个 API 查询返回的一个微型应用. API Resource 就是把 API 的内容当做网络资源去处理.工程中的路由访问也是返回 API 内 ...

  7. sql server 保留小数,向上保留指定位数的小数,仅记录,勿看。

    比如 4.05 要取成 4.1 , 4.16 取成 4.2 ,4.5 取成 4.5 ,意思就是小数部分第二位不管是多少都丢掉然后加0.1,但是如果是 4.5 这样完整的就不需要处理. 可以像下面这么写 ...

  8. idea开发环境中maven控制台乱码解决

    在pom文件中加入 红色那行, <properties>        <project.build.sourceEncoding>UTF-8</project.buil ...

  9. 用泛型T替代object做为万能参数传递

    using System;using System.Collections;using System.Collections.Generic;using UnityEngine; public cla ...

  10. redis3.0 cluster功能介绍

    edis从3.0开始支持集群功能.redis集群采用无中心节点方式实现,无需proxy代理,客户端直接与redis集群的每个节点连接,根据同样的hash算法计算出key对应的slot,然后直接在slo ...