Redis一共有哪些数据类型?PHP如何操作Redis的每种类型?

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: Redis一共有哪些数据类型?PHP如何操作Redis的每种类型?

Redis一共有以下数据类型:

String类型:二进制安全,可以包含任何数据,比如图片或序列化的对象。常用操作:SET、GET、INCR、DECR、APPEND、STRLEN等。
示例代码:

// 连接 Redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// 设置值
$redis->set('mykey', 'hello world');

// 获取值
$value = $redis->get('mykey');
echo $value; // 输出: hello world

// 自增
$redis->incr('counter'); // 返回 1
$redis->incr('counter'); // 返回 2

// 追加值
$redis->append('mykey', '!!!');
$value = $redis->get('mykey');
echo $value; // 输出: hello world!!!

Hash类型:键值对集合,适用于存储对象。常用操作:HSET、HGET、HMSET、HINCRBY、HDEL、HGETALL等。
示例代码:

// 连接 Redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// 设置值
$redis->hset('myhash', 'field1', 'value1');
$redis->hset('myhash', 'field2', 'value2');

// 获取单个值
$value = $redis->hget('myhash', 'field1');
echo $value; // 输出: value1

// 获取所有键值对
$values = $redis->hgetall('myhash');
print_r($values); // 输出: Array ( [field1] => value1 [field2] => value2 )

List类型:链表,可用于实现队列或栈。常用操作:LPUSH、RPUSH、LPOP、RPOP、LLEN、LRANGE等。
示例代码:

// 连接 Redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// 插入值
$redis->lpush('mylist', 'item1');
$redis->rpush('mylist', 'item2');

// 弹出值
$value = $redis->lpop('mylist');
echo $value; // 输出: item1

// 获取列表长度
$length = $redis->llen('mylist');
echo $length; // 输出: 1

// 获取列表所有元素
$values = $redis->lrange('mylist', 0, -1);
print_r($values); // 输出: Array ( [0] => item2 )

Set类型:无序集合,不允许重复元素。常用操作:SADD、SREM、SMEMBERS、SISMEMBER、SUNION等。
示例代码:

// 连接 Redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// 添加值
$redis->sadd('myset', 'item1');
$redis->sadd('myset', 'item2');

// 移除值
$redis->srem('myset', 'item2');

// 获取所有值
$values = $redis->smembers('myset');
print_r($values); // 输出: Array ( [0] => item1 )

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
11天前
|
NoSQL Redis
TongRDS与Redis数据类型的对比、开发板、标准版、企业版区别
TongRDS与Redis数据类型的对比、开发板、标准版、企业版区别
21 2
|
10天前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
19 1
|
12天前
|
缓存 NoSQL Redis
redis管道操作(节省网络IO开销)
pipeline中发送的每个command都会被server立即执行,如果执行失败,将会在此后的响应中得到信息;也就是pipeline并不是表达“所有command都一起成功”的语义,管道中前面命令失败,后面命令不会有影响,继续执行。
14 1
|
15天前
|
NoSQL Redis C语言
[hiredis 的Redis执行语句返回结果类型全说明
[hiredis 的Redis执行语句返回结果类型全说明
15 1
|
17天前
|
NoSQL Java Redis
如何在 Java 中操作这些 Redis 数据结构的基本方法
如何在 Java 中操作这些 Redis 数据结构的基本方法
17 2
|
2天前
|
Java
Redis19----RedisTemplate操作Hash类型
Redis19----RedisTemplate操作Hash类型
|
2天前
|
NoSQL Redis
Redis11-----Sortedset类型,SortedSet底层是由数据树实现的,SortedSet删除同学,获取Amy同学分数,获取Rose同学排名,查询80分以下的学生,给Amy同学加2分
Redis11-----Sortedset类型,SortedSet底层是由数据树实现的,SortedSet删除同学,获取Amy同学分数,获取Rose同学排名,查询80分以下的学生,给Amy同学加2分
|
2天前
|
存储 NoSQL Java
Redis10------Set类型,存在着无序的特征存储的顺序和插入的顺序是无关的,set集合的一大特点是不可重复,在redis中支持交集插集等特殊功能,好友列表,共同关注等等
Redis10------Set类型,存在着无序的特征存储的顺序和插入的顺序是无关的,set集合的一大特点是不可重复,在redis中支持交集插集等特殊功能,好友列表,共同关注等等
|
3天前
|
NoSQL Java Redis
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
|
3天前
|
存储 Java
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD