欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis 数据类型

程序员文章站 2022-04-04 17:52:26
字符串(string) set 键 值 添加数据 get 键 读取数据 Linux操作系统下编写 incr 键 增加(increment缩写,默认每次只+1) incrBy 键 值 增加多个数量 decr 键 递减(默认每次只 1) decrBy 键 递减数 递减指定的数量 append 变量名 追 ......

字符串(string)

set 键 值
添加数据
get 键
读取数据

Linux操作系统下编写

127.0.0.1:1715> set num 100
127.0.0.1:1715> get num

incr 键
增加(increment缩写,默认每次只+1)

127.0.0.1:1715> incr num 

incrBy 键 值
增加多个数量

127.0.0.1:1715> incrBy num 100

decr 键
递减(默认每次只-1)

127.0.0.1:1715> decr num 

decrBy 键 递减数
递减指定的数量

127.0.0.1:1715> decrBy num 10

append 变量名 追加的内容
字符串后追加内容

127.0.0.1:1715> append name world

delete 键
删除

127.0.0.1:1715> delete num 

expire 键 时间长度/秒
设置数据的有效期

127.0.0.1:1715> expire num 10

expireAt('变量名',时间戳)
设置数据的有效期
strtotime('时间')
将字符串转换成时间戳

<?php        
    //设置时区
    date_default_timezone_set('PRC');
    //1.实例化redis对象
    $redis = new Redis();
    //2.连接redis服务器
    $result = $redis -> connect('127.0.0.1',1715);
    //3.设置数据的有效期
    echo strtotime("2018-04-25 10:50:00");
    $redis -> expireAt('name',strtotime("2018-04-25 10:50:00"));

exists 变量名
判断变量是否存在

127.0.0.1:1715> exits name 

链表(list)

链表, 一段逻辑上连续的存储空间(类似于PHP的索引数组),和链表相关的方,基本是l开头
Redis 数据类型
lpush

<?php        
    //1.实例化redis对象
    $redis = new Redis();
    //2.连接redis服务器
    $result = $redis -> connect('127.0.0.1',1715);
    //3.
    $redis -> lpush('waiting','one');
    $redis -> lpush('waiting','two');
    $redis -> lpush('waiting','three');

rpop

127.0.0.1:1715> RPOP waiting
"one"

rpush
lpop
lpush、rpop 和 rpush、lpop 这两对常用来生成任务队列,先到先得(FIFO)。通常在生成订单时会使用链表方式生成任务队列
lrange 变量名 开始的索引 结束的索引
获取指定索引范围的元素(若结束的索引为-1,表示倒数第一个)

127.0.0.1:1715> LRANGE waiting 0 1
1) "two"
2) "one"
127.0.0.1:1715> LRANGE waiting 0 -1
1) "three"
2) "two"
3) "one"

llen 变量名
长度

127.0.0.1:1715> llen waiting 
(integer) 3

lset 变量名 索引 元素
设置某个索引处元素

127.0.0.1:1715> lset waiting 0 first
OK

lrem 变量名 索引 元素
删除指定的元素

127.0.0.1:1715> lrem waiting 0 first
(integer) 1

哈希表(hash)

以键值对的方式存储数据(类似于PHP中的关联数组),常用来保存有关联关系的数据。和哈希表相关的方法,都是以h开头
hset 变量名 键 值
设置某个键

127.0.0.1:1715> hset people name David
(integer) 1

hget 变量名 键
获取某个键

127.0.0.1:1715> hget people name 

hlen 变量名
元素个数

127.0.0.1:1715> hlen people 

hdel 变量名 键
删除某个元素

127.0.0.1:1715> hden people name

hexists 变量名 键
某个元素是否存在

127.0.0.1:1715> hexists people name

集合(set)

集合类型的数据有2个特点:

  • 成员没有顺序性,无序
  • 成员唯一

和集合类型相关的方法,以s开头
sadd 成员 值
添加成员

127.0.0.1:1715> sadd hobby swim

smembers 成员
获取集合中的全部成员,不区分大小写(在php中调用时使用小写0)

127.0.0.1:1715> smembers hobby 

spop 成员
弹出成员

127.0.0.1:1715> spop hobby 
"swim"

srem 成员
删除成员

127.0.0.1:1715> srem hobby 
(integer) 1

scard 成员
成员个数

127.0.0.1:1715> scard hobby 
(integer) 0

有序集合(sorted-set)

适合开发排行榜类型的应用
zadd 变量名 分值 成员
添加成员, 同时指定分数

127.0.0.1:1715> zadd rank 5 baidu 
(integer) 1

zincrBy 变量名 成员
递增成员的分值

127.0.0.1:1715> zincrBy rank 5 baidu 
(integer) 1

zScore 变量名 成员
获取成员的分

127.0.0.1:1715> zScore rank baidu 

zrange 变量名 最小分值 最大分值
根据分值, 返回指定范围的成员

127.0.0.1:1715> zrange rank 0 -1 

zRevRange 变量名
倒序(降序分值)

127.0.0.1:1715> zRevRange rank 

zRangeByScore 变量名 最大分值 最小分值
分值过滤成员

127.0.0.1:1715> zRangebyScore rank 5 1