Redis 的基本操作

root
233
文章
0
评论
2021年2月23日19:28:43 评论 2877字阅读9分35秒

Redis 的基本操作

作为缓存使用

  • 原yun始业务功能设计
    • 秒杀
    • 618活动
    • 春节买票
  • 运营平台监控到的突发高频访问数据
    • 突发时政要闻,被强势关注
  • 高频,复杂的统计数据
    • 在线人数

 

key的命名规范

数据库中的热点数据key命名惯例

 

 

命令行模式工具

清除屏幕信息

clear

 

添加信息

功能:设置keyvalue数据

命令:set key value

示范:

  • 127.0.0.1:6379> set key value
    OK
    127.0.0.1:6379> set name set
    OK
    

查询信息

127.0.0.1:6379> get name
"set"

当查询到的key不存在时报的信息

127.0.0.1:6379> get set
(nil)

 

数据存储类型(value)

redis 数据存储格式

  • redis自身是一个Map,其中所以的数据都是采用key:value的形式存储
  • 数据库指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串

string

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
  • 存储数据的格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用
  • string作为数值操作,redis所以的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响
  • 数据最大存储量:512MB

string 类型数据的基本操作

  • 添加/修改数据
127.0.0.1:6379> set kk 123
OK
  • 获取数据
127.0.0.1:6379> get kk
"123"
  • 删除数据
127.0.0.1:6379> del kk
(integer) 1
  • 添加/修改多个数据
127.0.0.1:6379> mset kk 1 ll 2 pp 3
OK
127.0.0.1:6379> get kk
"1"
127.0.0.1:6379> get ll
"2"
  • 获取多个数据
127.0.0.1:6379> mget kk ll pp
1) "1"
2) "2"
3) "3"
  • 获取数据字符长度
127.0.0.1:6379> set oo sdfdsfsdgs
OK
127.0.0.1:6379> strlen oo
(integer) 10
  • 追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
127.0.0.1:6379> append kk 2233
(integer) 5
127.0.0.1:6379> get kk
"12233"

string类型数据的扩展操作

大型企业级应用中,分表操作是基本此操作, 使用多张表存储同类型数据,但是对于的主键ID必须保证统一性,不能重复,Oracle数据库具有seqience设定,可以解决该 问题,但是Mysql数据库并不具有类似的机制,那么如何解决?

解决方法

  • 设置数值数据增加指定范围的值
    • incr  就是key如果是数字的话,每执行一次增加1
127.0.0.1:6379> incr kk
(integer) 12234
127.0.0.1:6379> incr kk
(integer) 12235
127.0.0.1:6379> incr kk
(integer) 12236
    • incrby 就是key如果是数字的话,每次执行增加指定
127.0.0.1:6379> get pp
"7"
127.0.0.1:6379> incrby pp 100
(integer) 107
127.0.0.1:6379> get pp
"107"
  • 设置数值数据减少指定范围的值【可以是复数】
    • decr key  就是key如果是数字的话,每执行一次减少1
    • decrby  就是key如果是数字的话,每次执行减少指定
127.0.0.1:6379> get pp
"107"
127.0.0.1:6379> decrby pp 100
(integer) 7
127.0.0.1:6379> get pp
"7"

业务场景

“最强女生”启动海选投票,只能通过微信投票,每个微信号每4小时只能投1票

电商商家开启热门商品推荐,热门商品不能一直处于热门期,每种商品热门期维持3天,3天后自动取消热门,新闻网站会出现热点新闻,热点新闻最大的特征是时效性,如何自动控制热点新闻的时效性

 解决方案:

  • 设置数据具有指定的生命周期
    • setex key 时间(s)value
127.0.0.1:6379> setex mn 10 22
OK
127.0.0.1:6379> get mn
"22"
127.0.0.1:6379> get mn
(nil)
    • psetex 是毫秒
    • psetex key 时间 xxx

业务场景

主页高频访问信息控制,例如新浪微博大V主页显示粉丝数量

解决方式:

  • 在redis中为大V用户设定用户信息,以用户主键和属性值作为key,后台设定定时刷新策略即可
//表名user:id号:规定是什么(数量)
127.0.0.1:6379> set user:id:00789:ran 12345565
OK

127.0.0.1:6379> get user:id:00789:ran
"12345565"

 

hash 类型

新的存储需求

  • 对一系列存储的数据进行编组,方便管理,典型 应用存储对象信息
  • 需要的存储结构:一个存储空间保存多个键值对数据

需要的存储结构

  • 一个存储空间保存多个键值对数据

 

 

存储的困惑

对象类数据的存储如果具有频繁的更新需求操作会显得笨重

存储空间里的key=field,field+value=hash

hash的存储结构

  • 如果field数量减少,存储结构优化为类数组结构
  • 如果field数量较多,存储结构使用Hash Map结构

hash类型数据的基本操作

  • 添加/修改数据
//hset key field value
127.0.0.1:6379> hset user name wowo
(integer) 0
127.0.0.1:6379> hset user kk ww
(integer) 1
127.0.0.1:6379> hset user oo 123
(integer) 1


  • 获取数据
127.0.0.1:6379> hget user name
"wowo"
127.0.0.1:6379> hget user noo
(nil)
127.0.0.1:6379> hget user oo
"123"
127.0.0.1:6379> hget user kk
"ww"

127.0.0.1:6379> hgetall user
1) "name"
2) "wowo"
3) "kk"
4) "ww"
5) "oo"
6) "123"
  • 删除数据
127.0.0.1:6379> hgetall user
1) "name"
2) "wowo"
3) "kk"
4) "ww"
5) "oo"
6) "123"

127.0.0.1:6379> hdel user kk
(integer) 1

127.0.0.1:6379> hgetall user
1) "name"
2) "wowo"
3) "oo"
4) "123"
  • 添加/修改多个数据
hmset key field1 value1 field2 value2 field3 value3
  • 获取多个数据
hmget key field1 field2 ..
  • 获取哈希表中的字段数量
hlen key
  • 获取哈希表中是否存在指定的字段
hexists key field

 

 

1

list

set

sorted_set

 

 

 

 

 

 

 

 

 

 

 

 

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年2月23日19:28:43
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Redis哨兵模式部署 Redis

Redis哨兵模式部署

Redis哨兵模式部署 主机宕机 将宕机的master下线 找一个slave作为master 通知所有的slave连接新的master 启动新的master与slave 全量复制*N+部分复制*N 哨...
Redis6-redis.conf配置文件说明 Redis

Redis6-redis.conf配置文件说明

Redis6-redis.conf配置文件说明 ###NETWORK(网络)###(需记) bind 默认配置项:bind 127.0.0.1 说明:Redis服务监听地址,用于Redis客户端连接,...
Redis持久化 Redis

Redis持久化

Redis持久化   什么是持久化 利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化   为什么要进行持久化 防止数据的意外丢失,确保数据安全...
Redis安装 Redis

Redis安装

Redis安装 Redis的应用 为热点数据加速查询(主要场景),如热点商品,热点新闻,热点资讯,推广类等高访问量信息等 任务队列,如秒杀,抢购,购票排队等 及时信息查询,如各位排行榜,各类网站访问统...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: