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相关推荐

  1. 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. ...

  2. note.. redis五大数据类型

    redis 五大数据类型使用 nosql介绍,由来 什么是nosql 阿里巴巴的架构 nosql 四大分类 redis入门 概述 redis 安装 (docker) 基础的知识 redis五大数据类型 ...

  3. redis学习-redis五大数据类型

    五大数据类型简介 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. 也就是例子中的k1 v1,k2 v2 s ...

  4. Redis五大数据类型

    Redis五大数据类型 Redis数据类型 key + Østring Øset Ølist Øhash Øzset Redis五大数据类型 --Key Ø keys * • 查询当前库的所有键 Ø ...

  5. Redis五大数据类型常用命令

    Redis五大数据类型 Redis-Key 1.查看当前数据库的key keys * #返回当前数据库下的所有key 2.设置key set key value 3.获取key的value get k ...

  6. (一)Redis——五大数据类型及基础知识

    一位爱好技术的橘右京的哥哥橘左京 Redis--五大数据类型及基础知识(一) Redis 1.Redis命令 1.1 常用String命令 1.2 常用List命令 1.3 常用Hash命令 1.4 ...

  7. Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)

    本文全面讲述了Redis的五大数据类型和使用场景,含完整实战案例,强烈建议收藏!! 大家好,我是冰河~~ 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部 ...

  8. 【数据存储】【Redis】第三章: Redis五大数据类型实现原理

    Redis五大数据类型实现原理 对于五大数据类型(String,list,Hash,Set,Zset)实现原理,Redis在底层用到了多种数据结构,通过数据结构来实现键值对,将数据结构创建了一个对象r ...

  9. 【Redis五大数据类型】

    Redis五大数据类型 前言 一.字符串String 1. set / get / del / append / strlen 2. incr / decr / incrby / decrby 3. ...

最新文章

  1. ceph bluestore源码分析:C++ 获取线程id
  2. 《全球创新观察》研究报告3月刊下发布
  3. mysql if value t f_mysql常用函数
  4. 函数组合的 N 种模式
  5. ACM与Java -- 大整数类的常用函数一览表
  6. 物联网架构----双机热备Keepalived了解
  7. HarmonyOS 生态最重的拼图,手机开发者 Beta 版终于到来
  8. XAF 应用程序模型架构
  9. GB28181协议RTP传输
  10. 如何去除计算机病毒,怎么清除计算机病毒
  11. 案例4——52周存钱挑战
  12. Python L型组件填图问题(棋盘覆盖问题)
  13. 小程序——软件技术框架
  14. 基于Android的上位软件,基于Android的电子套结机上位机软件设计
  15. 【语音识别】动态时间规整算法(RTW)语音识别系统【含GUI Matlab源码 341期】
  16. vue全套教程(实操)
  17. 电脑打开网页提示服务器错误是怎么回事,电脑打开网页 http500服务器错误 怎么办?...
  18. #LeetCode每日一题#的阶段回顾
  19. 【相机标定】相机内参
  20. openvz相关资料

热门文章

  1. sap系统搭建教程_Nios ii最小系统搭建教程
  2. java tcp端口复用_windows server tcp端口重用问题
  3. 约翰诺曼超级计算机研究中心,第433章 拉泽尔松教授的决定
  4. python中pow是什么函数_python中pow什么意思
  5. cd linux盒上盖子不休眠,CDLinux 自动休眠功能的关闭方法
  6. qt mysql显示文件名字_【实例】Qt获取文件属性
  7. 皮一皮:美甲的最高境界...
  8. 美团面试:JVM 堆内存溢出后,其他线程是否可继续工作?
  9. Apache Beam 是什么,它为什么比其他选择更受欢迎?
  10. IDEA界面太丑??尝试一下这几个插件!