IT虾米网

Redis 数据类型详解

admin 2018年05月27日 大数据 158 0

字符串(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开头
image
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


发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Redis持久化存储详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。