前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis 学习(3)-- String 类型

redis 学习(3)-- String 类型

作者头像
希希里之海
发布2019-05-31 10:13:58
3940
发布2019-05-31 10:13:58
举报
文章被收录于专栏:weixuqin 的专栏weixuqin 的专栏

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:

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

代码语言:javascript
复制
incr userid:pageview

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

2:

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

业务过程如下:

伪代码:

代码语言:javascript
复制
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 生成器

代码语言:javascript
复制
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 方法请求多次网络的时间开销小,效率也更高。

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

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

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

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

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