前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实例讲解redis字符串类型

实例讲解redis字符串类型

作者头像
章鱼喵
发布2018-06-27 15:15:42
5890
发布2018-06-27 15:15:42
举报
文章被收录于专栏:codingcoding

字符串类型简介

字符串类型是Redis中最基本的数据类型,能存储任何形式的字符串

字符串类型

相关命令

命令

行为

GET key

获取值

SET key value

设置值

DEL key

删除值(此命令可用于所有类型)

GETSET key value

将key值设为value,返回旧值

APPEND key value

将value追加到key原来的值末尾

GETRANGE key start end

截取子字符串

INCR key

当值为数字时,每次递增1

INCRBY key increment

增加指定的整数

INCRBYFLOAT key increment

增加浮点数

DECR key

当值为数字时,每次递减1

DECRBY key decrement

减少指定的整数

MGET key [key...]

返回一个或多个key的值

MSET key value [key value ...]

同时设置一个或多个 key-value 对

MSETNX key value [key value ...]

当key都不存在时,设置多个key-value对

SETEX key seconds value

将值 value 关联到 key,生存时间以秒为单位

PSETEX key milliseconds value

以毫秒为单位

SETNX key value

将 key 的值设为 value ,当且仅当 key 不存在

SETRANGE key offset value

替换给定字符串

STRLEN key

返回 key 所储存的字符串值的长度。

了解更多相关命令

redis-cli

代码语言:javascript
复制
[senlong@linux ~]$ redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> del hello
(integer) 1
127.0.0.1:6379> get hello
(nil)

phpredis

代码语言:javascript
复制
class StringType extends Base
{
    public function get($key='name') {
        echo $this->redis->get($key);
    }

    public function set(Request $request, $key, $value) {
        if ($key && $value) {
            $this->redis->set($key, $value);
            echo '设置成功';
        }
    }

    public function del(Request $request, $key='name') {
        $this->redis->del($key);
    }

    public function incr($key) {
        $this->redis->incr($key);
        echo $this->redis->get($key);
    }
}

实践

需求:用redis实现统计博客文章的阅读数量

  • 写入文章

将文章键名命名为 post:id:data (类型:id:属性) 是出于惯例,便于理解。如 post:12:data 表示:第12篇文章的内容

代码语言:javascript
复制
public function setPost() {
    $title = '标题-';
    $content = '内容-';
    $time = date('Y-m-d H:i:s', time());
    // 获取文章自增id
    $postId = $this->redis->incr('posts:count');
    $postData = $title . $content . $time;
    // 写入文章
    $this->redis->set("post:{$postId}:data", $postData);
}
  • 获取文章并统计阅读数量

post:{$id}:page.view 表示文章阅读数,多个单词用 . 相连。如page.view即为page与view相连

代码语言:javascript
复制
/**
 * 每次刷新该方法,阅读数都加1
 * @author zhongsenlong 2017-07-23
 * @param  Request $request [description]
 * @param  integer $id      [description]
 * @return [type]           [description]
 */
public function getPost(Request $request, $id=1) {
    $postData = $this->redis->get("post:{$id}:data");
    if ($postData) {
        echo $postData;
        echo "<br />";
        // 文章阅读次数+1
        $pageView = $this->redis->incr("post:{$id}:page.view");
        echo "该文章被阅读了{$pageView}次";
    } else {
        echo '无此文章';
    }
}

源码下载

源码下载地址

示例代码路径:thinkphp5\application\redis\controller\StringType.php

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.07.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符串类型简介
  • 相关命令
  • redis-cli
  • phpredis
  • 实践
  • 源码下载
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档