专栏首页weixuqin 的专栏redis 学习(3)-- String 类型

redis 学习(3)-- String 类型

redis 学习(3)-- String 类型

String-结构

  • 结构:Key-Value对
  • Value:可以是字符串、数字,也可以是二进制数组
  • 限制:Value最大值为512MB

String-常用命令

命令

含义

get key

获取指定 key 的值

set key value

设置指定 key 的值

incr key

将 key 中存储的数字值增一

incrby key increment

将 key 所存储的数字值加上给定的增量

decr key

将 key 中存储的数字值减一

decrby key decrement

将 key 所存储的数字值减去给定的减量

setnx key value

只有当 key 不存在时才设置 key 的值

set key second value

u设置指定 key 的值,同时设置该 key 的过期时间,单位为秒

set key value xx

只有 key 存在时才设置 key 的值

mget key1 [key2...]

获取所有(一个或多个)指定 key 的值

mset key1 value1 [key2 value2...]

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

1. get key 、incr key、incrby key increment、decr key

演示

实战

1:

实现如下功能:记录网站每个用户个人主页的访问量?

incr userid:pageview

由于 redis 是单线程的,所以非常适合用作计数器,在高并发下没有竞争。

2:

实现如下功能:缓存视频的基本信息(数据源在MYSQL中)伪代码

业务过程如下:

伪代码:

public VideoInfo get(long id) {
    String redisKey = redisPrefix + id;
    VideoInfo videoInfo = redis.get(redisKey);
    if (videoInfo == null) {
        videoInfo = mysql.get(id);
        if(videoInfo != null) {
            //序列化
            redis.set(redisKey, serialize(videoInfo));
        }
    }
}

当我们通过 id 查找相关信息,redis 做中间层,当数据缓存在 redis 中时,我们直接返回该数据,如果 redis 中不存在,就到 MYSQL 中查找,查找成功后在返回。

3:

实现如下功能:分布式 id 生成器

incr id

(原子操作)

2. set key value、setnx key value、set key value xx

演示

3. mget key1 [key2...]、mset key1 value1 [key2 value2...]

演示

get 和 mget 的区别

由于 redis 存储在内存中,所以我们可以知道执行命令的速度很快,即命令时间相差不大,但是网络时间涉及到网速快慢的问题,明显 mset 只请求一次网络的时间比 get 方法请求多次网络的时间开销小,效率也更高。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • redis 学习(二)-- 通用命令

    希希里之海
  • redis 学习(9)-- redis 客户端 -- redis-py

    关于 redis 的各种客户端,我们可以在官网上寻找并使用,比如我这里的 python 客户端,可以在官网上找到:redis-client 。

    希希里之海
  • redis 学习(6)-- 集合类型

    思路:将参与抽奖的用户数放在 set 中,使用 spop 操作随机弹出集合中的一个成员,即为中奖用户。

    希希里之海
  • Redis-Nosql数据库入门

    简介 Redis是Nosql数据库的一种,可基于内存亦可持久化的日志型、是一个Key-Value数据库,多用在缓存方面 安装 Windows 下载地址, 最...

    李家酒馆酒保
  • redis配置信息以及常用命令

    本来不打算写这篇的,因为网上有很多这种的,最后想想,既然打算做一个redis系列,还是把这一篇补上,刚好这段时间有个同事做了一个redis的基础培训,整理的很好...

    程序员爱酸奶
  • Java 快速排序 关于起始方向的选择问题 为什么一定要从右边开始

    最后i、j 停留的位置的值肯定是要 小于 key 的 此时交换索引 j 和最左边元素key 符合将小于key的值放到key左边这一条件

    heasy3
  • 如何处理redis集群的hot key和big key

    redis 集群部署方式大部分采用类 Twemproxy 的方式进行部署。即通过 Twemproxy 对 redis key 进行分片计算,将 redis ke...

    akayzhang
  • 高并发系统设计-redis技术梳理

    架构师就是梳理技术,整理文档,落地技术方案,首先架构师需要梳理下redis能为我们解决什么问题,以及redis的技术门槛,redis的优势和缺点。

    用户6969969
  • redis

    1)Redis:REmote DIctionary Server(远程字典服务器)

    用户2337871
  • 【Redis】Redis常用命令

    expire key seconds 当超过过期时间,会自动删除,key在seconds秒后过期 expireat key timest...

    用户5522200

扫码关注云+社区

领取腾讯云代金券