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 方法请求多次网络的时间开销小,效率也更高。
redis 学习(3)-- String 类型的更多相关文章
- Redis学习手册(String数据类型)
一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...
- 尚硅谷redis学习4-数据类型
redis的数据类型包括String,Hash(类似于JAVA里的map),List,Set,Zset(sorted Set) String(字符串) string是redis最基本的类型,你可以理解 ...
- 3、Redis中对String类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- Redis中一个String类型引发的惨案
曾经看到这么一个案例,有一个团队需要开发一个图片存储系统,要求这个系统能快速记录图片ID和图片存储对象ID,同时还需要能够根据图片的ID快速找到图片存储对象ID.我们假设用10位数来表示 ...
- Redis自学笔记 --string类型
string类型 set 赋值 get ...
- Redis学习笔记--String(四)
Redis的第一个数据类型string 1.命令 1.1赋值 语法:SET key value Set key value; > OK 1.2取值 语法:GET key > get tes ...
- redis学习一 String数据类型
一:概述 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的 ...
- Redis 中 String 类型的内存开销比较大
使用 String 类型内存开销大 1.简单动态字符串 2.RedisObject 3.全局哈希表 使用 Hash 来存储 总结 参考 使用 String 类型内存开销大 如果我们有大量的数据需要来保 ...
- redis的String类型以及其操作
Redis的数据类型 String类型以及操作 String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或 ...
- 带你掌握Redis数据类型:string和Hash
摘要:Redis中有五大数据类型,分别是String.List.Set.Hash和Zset. 本文分享自华为云社区<Redis的string类型常用命令解析>,作者:灰小猿 . 先问大家一 ...
随机推荐
- Bug集锦-Spring Cloud Feign调用其它接口报错
问题描述 Spring Cloud Feign调用其它服务报错,错误提示如下:Failed to instantiate [java.util.List]: Specified class is an ...
- python pymysql 连接 mysql数据库进行操作
1.数据库的连接操作 import pymysql conn = pymysql.connect(host=', db='oldboydb') # host表示ip地址,user表示用户名,passw ...
- selenium expected_conditions 源码学习记录
#expected_conditions模块收集了一系列的场景判断方法 #源码地址 # https://seleniumhq.github.io/selenium/docs/api/py/_modul ...
- UI的流畅度优化
Android中所有的界面绘制工作都是在UI线程中进行的,提高UI流畅度的最核心根本在于释放UI线程.即:不在主线程中做耗时的操作. 很多人都知道,耗时的操作要放到子线程中去做,比如访问网络,比如读写 ...
- #ifdef _WIN32的来源
宏定义:#ifdef _WIN32 由编译器(ml.exe/ml64.exe)内部定义的.具体描述是: _WIN32:Defined for applications for Win32 and ...
- flutter Oops; flutter has exited unexpectedly
使用模拟器时执行flutter run 报出下面一大堆错误 注意只有模拟器有这种问题,真机可以正常运行 Oops; flutter has exited unexpectedly. Sending c ...
- LoadRunner脚本编写之一
LoadRunner脚本编写之一 性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不 ...
- Python 自动化
一.Win32 GUI自动化测试模块: 1. pywinauto: 下载链接:http://sourceforge.net/projects/pywinauto/ 在线文档:http://pywina ...
- 2019.11.06 【每天学点SAP小知识】Day1 - ABAP 7.40新语法
最近看同事使用ABAP新语法贼溜,省了好多的功夫,还在使用老语法的我眼红了. 所以就自己补一补7.40之后语法,能够让自己写代码更顺畅吧. 今天学习内联申明 inline 意思是:当编译器发现某段代码 ...
- 跨平台python异步回调机制实现和使用方法
跨平台python异步回调机制实现和使用方法 这篇文章主要介绍了python异步回调机制的实现方法,提供了使用方法代码 1 将下面代码拷贝到一个文件,命名为asyncore.py 代码如下: impo ...