九、Redis五大数据类型之一String
string类型
1.string类型数据的基本操作
添加 / 修改数据:set key value
获取数据:get key
删除数据:del key
添加 / 修改多个数据:mset key value key1 value1
获取多个数据:mget key key1
追加信息到原始数据后边(不存在时则添加):append key value
2.string类型 增减操作
设置数据增加指定范围的值:incr key 默认每次加1 | incrby key value 每次新增value
设置数据减少指定范围的值:decr key | decrby key value 跟新增是一回事
应用场景
控制数据库表主键id,为数据库表提供主键生成策略,保证数据表主键的一致性。
3.string类型 时效操作
设置过期时间:setex key seconds value
应用场景
实现限制时间投票功能:例如一个微信一个小时可以投一次实现热点信息:例如电商行业热门商品、新闻网站热门新闻
4.string类型的操作配置
##########################################################################
127.0.0.1:6379> set key1 v1 # 设置值
127.0.0.1:6379> get key1 # 获得值
127.0.0.1:6379> keys * # 获得所有的key
127.0.0.1:6379> EXISTS key1 # 判断某一个key是否存在
127.0.0.1:6379> APPEND key1 "hello" # 追加字符串,如果当前key不存在,就相当于setkey
127.0.0.1:6379> get key1
127.0.0.1:6379> STRLEN key1 # 获取字符串的长度!
127.0.0.1:6379> APPEND key1 "sj"
127.0.0.1:6379> STRLEN key1
127.0.0.1:6379> get key1
##########################################################################
# i++
# 步长 i+=
127.0.0.1:6379> set views 0 # 初始浏览量为0
127.0.0.1:6379> get views
127.0.0.1:6379> incr views # 自增1 浏览量变为1
127.0.0.1:6379> incr views
127.0.0.1:6379> get views
127.0.0.1:6379> decr views # 自减1 浏览量-1
127.0.0.1:6379> decr views
127.0.0.1:6379> decr views
127.0.0.1:6379> get views
127.0.0.1:6379> INCRBY views 10 # 可以设置步长,指定增量!
127.0.0.1:6379> INCRBY views 10
(
127.0.0.1:6379> DECRBY views 5
##########################################################################
# 字符串范围 range
127.0.0.1:6379> set key1 "hello,sj" # 设置 key1 的值
127.0.0.1:6379> get key1
127.0.0.1:6379> GETRANGE key1 0 3 # 截取字符串 [0,3]
127.0.0.1:6379> GETRANGE key1 0 -1 # 获取全部的字符串 和 get key是一样的
# 替换!
127.0.0.1:6379> set key2 abcdefg
127.0.0.1:6379> get key2
127.0.0.1:6379> SETRANGE key2 1 xx # 替换指定位置开始的字符串!
127.0.0.1:6379> get key2
##########################################################################
# setex (set with expire) # 设置过期时间
# setnx (set if not exist) # 不存在再设置 (在分布式锁中会常常使用!)
127.0.0.1:6379> setex key3 30 "hello" # 设置key3 的值为 hello,30秒后过期
127.0.0.1:6379> ttl key3
127.0.0.1:6379> get key3
127.0.0.1:6379> setnx mykey "redis" # 如果mykey 不存在,创建mykey
127.0.0.1:6379> keys *
127.0.0.1:6379> ttl key3
127.0.0.1:6379> setnx mykey "MongoDB" # 如果mykey存在,创建失败!
127.0.0.1:6379> get mykey
##########################################################################
mset
mget
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 # 同时设置多个值
127.0.0.1:6379> keys *
127.0.0.1:6379> mget k1 k2 k3 # 同时获取多个值
127.0.0.1:6379> msetnx k1 v1 k4 v4 # msetnx 是一个原子性的操作,要么一起成功,要么一起失败!
127.0.0.1:6379> get k4
# 对象
set user:1 {name:zhangsan,age:3} # 设置一个user:1 对象 值为 json字符来保存一个对象!
# 这里的key是一个巧妙的设计: user:{id}:{filed} , 如此设计在Redis中是完全OK了!
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 2
127.0.0.1:6379> mget user:1:name user:1:age
##########################################################################
getset # 先get然后在set
127.0.0.1:6379> getset db redis # 如果不存在值,则返回 nil
127.0.0.1:6379> get db
127.0.0.1:6379> getset db mongodb # 如果存在值,获取原来的值,并设置新的值
127.0.0.1:6379> get db
string类型的应用场景
微博大V主页高频的访问,对于粉丝数、关注数、微博数都需要时时更新。这个就属于高频信息了,我们就可以使用redis的string类型来解决在redis中为大V设定用户信息,以用户主键和属性为键值,以下为实现案例。
在这里需要简单的说一下key的命名规则:以表名+主键+主键值+字段 :字段值。以这样的规则来命名就可以很好的来管理我们的键值。
我们还可以使用另外一种方式来实现,就是键后边直接跟一个结构,例如
以上的俩种方式都是可以实现的,只是第一种可以很方便的对任意一个值进行管理,第二种是改一个都得改一次,看业务场景,定时刷新就行。
九、Redis五大数据类型之一String相关推荐
- Redis五大数据类型(字符串对象(string)、列表对象(list)、哈希对象(hash)、无序集合(set)和Sorted Set数据类型(zset有序集合))
Redis五大数据类型 一.String(字符串)数据类型 1.SET/GET/APPEND/STRLEN 2.INCR/DECR/INCRBY/DECRBY 3.GETSET 4. SETEX 5. ...
- note.. redis五大数据类型
redis 五大数据类型使用 nosql介绍,由来 什么是nosql 阿里巴巴的架构 nosql 四大分类 redis入门 概述 redis 安装 (docker) 基础的知识 redis五大数据类型 ...
- redis学习-redis五大数据类型
五大数据类型简介 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. 也就是例子中的k1 v1,k2 v2 s ...
- Redis五大数据类型
Redis五大数据类型 Redis数据类型 key + Østring Øset Ølist Øhash Øzset Redis五大数据类型 --Key Ø keys * • 查询当前库的所有键 Ø ...
- Redis五大数据类型常用命令
Redis五大数据类型 Redis-Key 1.查看当前数据库的key keys * #返回当前数据库下的所有key 2.设置key set key value 3.获取key的value get k ...
- (一)Redis——五大数据类型及基础知识
一位爱好技术的橘右京的哥哥橘左京 Redis--五大数据类型及基础知识(一) Redis 1.Redis命令 1.1 常用String命令 1.2 常用List命令 1.3 常用Hash命令 1.4 ...
- Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)
本文全面讲述了Redis的五大数据类型和使用场景,含完整实战案例,强烈建议收藏!! 大家好,我是冰河~~ 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部 ...
- 【数据存储】【Redis】第三章: Redis五大数据类型实现原理
Redis五大数据类型实现原理 对于五大数据类型(String,list,Hash,Set,Zset)实现原理,Redis在底层用到了多种数据结构,通过数据结构来实现键值对,将数据结构创建了一个对象r ...
- 【Redis五大数据类型】
Redis五大数据类型 前言 一.字符串String 1. set / get / del / append / strlen 2. incr / decr / incrby / decrby 3. ...
最新文章
- ceph bluestore源码分析:C++ 获取线程id
- 《全球创新观察》研究报告3月刊下发布
- mysql if value t f_mysql常用函数
- 函数组合的 N 种模式
- ACM与Java -- 大整数类的常用函数一览表
- 物联网架构----双机热备Keepalived了解
- HarmonyOS 生态最重的拼图,手机开发者 Beta 版终于到来
- XAF 应用程序模型架构
- GB28181协议RTP传输
- 如何去除计算机病毒,怎么清除计算机病毒
- 案例4——52周存钱挑战
- Python L型组件填图问题(棋盘覆盖问题)
- 小程序——软件技术框架
- 基于Android的上位软件,基于Android的电子套结机上位机软件设计
- 【语音识别】动态时间规整算法(RTW)语音识别系统【含GUI Matlab源码 341期】
- vue全套教程(实操)
- 电脑打开网页提示服务器错误是怎么回事,电脑打开网页 http500服务器错误 怎么办?...
- #LeetCode每日一题#的阶段回顾
- 【相机标定】相机内参
- openvz相关资料
热门文章
- sap系统搭建教程_Nios ii最小系统搭建教程
- java tcp端口复用_windows server tcp端口重用问题
- 约翰诺曼超级计算机研究中心,第433章 拉泽尔松教授的决定
- python中pow是什么函数_python中pow什么意思
- cd linux盒上盖子不休眠,CDLinux 自动休眠功能的关闭方法
- qt mysql显示文件名字_【实例】Qt获取文件属性
- 皮一皮:美甲的最高境界...
- 美团面试:JVM 堆内存溢出后,其他线程是否可继续工作?
- Apache Beam 是什么,它为什么比其他选择更受欢迎?
- IDEA界面太丑??尝试一下这几个插件!