#信息添加  功能:设置 key,value 数据
set key value
#范例
set name itheima
#信息查询 功能:根据 key 查询对应的 value,如果不存在,返回空(nil)
get key
#范例
get name
#整体例子
set age 100
get age
#清除屏幕信息 功能:清除屏幕中的信息
clear
#退出客户端命令行模式 功能:退出客户端
quit
exit
< ESC >
#帮助 功能:获取命令帮助文档,获取组中所有命令信息名称
help 命令名称  help @组名
#范例
help get'''GET key  #命令的格式summary: Get the value of a key  #功能描述since: 1.0.0  #出现版本group: string   #所属群组'''
help set
#返回
'''SET key value [EX seconds] [PX milliseconds] [NX|XX]summary: Set the string value of a keysince: 1.0.0group: string'''数据存储类型介绍
 string
 hash
 list
 set
 sorted_set
 数据类型实践案例数据存储类型介绍
系统功能优化或升级
单服务器升级集群
Session 管理
Token 管理Redis 数据类型(5种常用)
string          String
hash            HashMap
list            LinkedList
set             HashSet
sorted_set     TreeSetredis 数据存储格式
redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储
数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串 Redis 存储空间 name age itheima 101 key valuestring 类型(右边)
存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
存储数据的格式:一个存储空间保存一个数据
存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用string 类型数据的基本操作
添加/修改数据
set key value
例子:
set name pipi
获取数据
get key
例子:
get name
删除数据
del key
del name添加/修改多个数据
mset key1 value1 key2 value2 …
例子:
mset a 123 name pipi age 80获取多个数据
mget key1 key2 …
例子:
mget a  name age获取数据字符个数(字符串长度)
strlen key
例子:
strlen name
追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
append key value
append name pp  #返回名字的追加串联string 类型数据的扩展操作
大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键 id 必须保证统一性,不能重复。
Oracle 数据库具有 sequence 设定,可以解决该问题,但是 MySQL数据库并不具有类似的机制,那么如何解决?设置数值数据增加指定范围的值
incr key
实例:
set num 1
incr num  #返回2
incr num  #返回3
incrby key increment
实例:
incrby num 10   #返回13  对num加10
incrbyfloat key increment  #对小数追加
incrbyfloat num 1.5  #返回14.5
设置数值数据减少指定范围的值
decr key
set num 20
decr num #返回19
decrby key increment
decrby num 10 #返回9设置数据具有指定的生命周期
setex key seconds value
例子:
setex tel 10 1  #对tel值设置时间活10秒
psetex key milliseconds value
psetex tel 10 1 #对tel值设置时间活10毫秒string 类型数据操作的注意事项
数据操作不成功的反馈与数据正常操作之间的差异
①表示运行结果是否成功
(integer) 0 → false 失败
(integer) 1 → true 成功
②表示运行结果值
(integer) 3 → 3 3个
(integer) 1 → 1 1个
数据未获取到 (nil)等同于null
数据最大存储量 512MB
数值计算最大范围(java中的long的最大值) 9223372036854775807在redis中为大V用户设定用户信息,以用户主键和属性值作为key,后台设定定时刷新策略即可
eg: user:id:3506728370:fans → 12210947
实例
set user:id:3506728370:fans 12210947eg: user:id:3506728370:blogs → 6164
set user:id:3506728370:blogs 12210947
eg: user:id:3506728370:focuss → 83
set user:id:3506728370:focuss 12210947
在redis中以json格式存储大V用户信息,定时刷新(也可以使用hash类型)
eg: user:id:3506728370 →
{"id":3506728370,"name":"春晚","fans":12210862,"blogs":6164, "focus":83}
实例:
set user:id:00789 {id:00789,vkigs:789,,fansᆪᄎ123456789}
Tips 3:
redis应用于各种结构型和非结构型高热度数据访问加速
incr user:id:00789:fanskey 的设置约定
数据库中的热点数据key命名惯例表名      主键名     主键值     字段名
eg1:    order:  id:       29437595   name
eg2:    equip:  id:       390472345   type
eg3:    news:   id:       202004150   titlehash 类型数据的基本操作
添加/修改数据
hset key field value
实例
hset user name zhangsan
hset user age 38获取数据
hget key field
实例
hget user name  #返回zhangsanhgetall key
实例hgetall user #返回所有数据
删除数据
hdel key field1[field2]
实例
hdel user name添加/修改多个数据
hmset key field1 value1 field2 value2 …
hmset usesr name zhangsan age 38获取多个数据
hmget key field1 field2 …
hmget user  name  age获取哈希表中字段的数量
hlen key
实例
hlen user
获取哈希表中是否存在指定的字段
hexists key field
实例
hexists user age 获取哈希表中所有的字段名或字段值
hkeys key
实例
hkeys user
hvals key 设置指定字段的数值数据增加指定范围的值
hincrby key field increment
hincrby user age 35  #年龄增加35
hincrbyfloat key field incrementhash 类型数据操作的注意事项
hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应的值为(nil) hash 类型数据操作的注意事项
每个 hash 可以存储 232 - 1 个键值对
hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可滥用,更不可以将hash作为对象列表使用
hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就很会低,有可能成为数据访问瓶颈当前仅仅是将数据存储到了redis中,并没有起到加速的作用,商品信息还需要二次查询数据库
每条购物车中的商品记录保存成两条fieldfield2专用于保存购物车中显示的信息,包含文字描述,图片地址,所属商家信息等
命名格式:商品id:info
保存数据:json
实例:
hmset 003 g01:nums 100 g01:info {...}
获取所有数据 hgetall 003hsetnx key field value
例子:hsetnx 003 g05:nums 1  #对003用户增加  g05:nums 1双11活动日,销售手机充值卡的商家对移动、联通、电信的30元、50元、100元商品推出抢购活动,每种商品抢购上限1000张
解决方案 :
以商家id作为key
将参与抢购的商品id作为field
将参与抢购的商品数量作为对应的value
抢购时使用降值的方式控制产品数量
实际业务中还有超卖等实际问题,这里不做讨论redis 应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计string存储对象(json)与hash存储对象
实例:
hmset p01 c30 1000 c50 1000 c100 1000
hincrby p01 c50 -1   #50卖了1张
hincrby p01 c100 -20 #100卖了20张
hgetall p01  #返回所有的结果list 类型数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
list类型:保存多个数据,底层使用双向链表存储结构实现添加/修改数据
lpush key value1 [value2] ……
实例:
lpush list1 huawei
lpush list1 apple
lpush list1 microsoftrpush key value1 [value2] ……
实例:
rpush list1 a b c  #同时增加三个数据获取数据
lrange key start stop
实例
lrange list1 0 2  #查list1 0 到2的数据
lrange list1 0 -1  #查list1 0 到最后一个的数据lindex key index
实例
lindex list1 0
llen key
实例
llen list1获取并移除数据
lpop key
rpop key规定时间内获取并移除数据
blpop key1 [key2] timeout
blpop list1 30  #30为时间,秒单位 等30秒
brpop key1 [key2] timeout(时间)
brpoplpush source destination timeout移除指定数据
lrem key count(个数) value
实例:
rpush 001 a v c d e   #对001增加5个值为 a v c d e
lrange 001 0 -1    查询001的所有数据
lrem 001 1 a     对001删除一个数据a
lrange 001 0 -1 查询001的所有数据twitter、新浪微博、腾讯微博中个人用户的关注列表需要按照用户的关注顺序进行展示,粉丝列表需要将最近关注的粉丝列在前面
新闻、资讯类网站如何将最新的新闻或资讯按照发生的时间顺序展示?
企业运营过程中,系统将产生出大量的运营数据,如何保障多台服务器操作日志的统一顺序输出?解决方案 依赖list的数据具有顺序的特征对信息进行管理
使用队列模型解决多路信息汇总合并的问题
使用栈模型解决最新消息的问题

redis-第一节作业相关推荐

  1. python使用redis第一节、环境配置

    开发环境:[Win10].[Redis3.2.100] 开发工具:[PyCharm Community Edition 2021.3.1] 导读: 本章节我们将为大家介绍 Python 如何操作 re ...

  2. java 排序 1和1_新手入门-冒泡排序和选择排序第一节排序1.1排序概述排序(

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 新手入门-冒泡排序和选择排序 第一节排序 1.1排序概述 排序(sorting)的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.  ...

  3. 第一节:创建SpringBoot项目并运行HelloWorld

    SpingBoot 365计划开始更新了,计划手敲365个SpringBoot案例回顾总结形成知识体系.目前已经输出了32节的内容.所有源码托管在GitHub和Gitee上. 1.第一节:创建Spri ...

  4. 第一节 如何用Go实现单链表

    一.概念介绍 下面这副图是我们单链表运煤车队. 每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据.前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车 ...

  5. 数据挖掘课程第一章作业《认识数据挖掘与数据预处理》

    文章目录 作业内容 #1.什么是数据挖掘? 数据挖掘的定义 数据挖掘与数据分析的区别 2.数据挖掘的主要任务有哪些? 老师ppt中给出的内容 数据挖掘的应用场景 1.教育领域 2.风控领域 3.医疗领 ...

  6. 2017-2018-2 《密码与安全新技术》第一周作业

    2017-2018-2 <密码与安全新技术>第一周作业 课程:<密码与安全新技术> 班级:2017级92班 学号:20179225 上课教师:谢四江 上课日期:2018年3月1 ...

  7. 第一节计算机课开场白,第一节课有趣的开场白

    我是一名新老师,请问第一堂课的开场白怎么讲 我:上课 学生:起立 我:同学们好 学生:老师好 我:请坐 我:很高兴见到大家. 我是你们的英语(或其他的学科)老师 我叫* 老师有一个小小的请求. 大家一 ...

  8. 学习git的第一节课

    第一节课的笔记 git init 创建版本库 git status 查看版本状态 git log 可以看提交次数和时间          git log --pretty=oneline 按行显示 g ...

  9. 初级会计实务--第七章第一节、管理会计概述

    第一节.管理会计概述 1.管理会计概念和目标 管理会计是会计的重要分支,主要服务于单位内部管理需要,是通过利用相关信息,有机融合财务与业务活动,在单位规划.决策.控制和评价等方面发挥重要作用的管理活动 ...

  10. 设计模式-02.经典设计原则-第一节-单一职责原则,开闭原则,里式替换,接口隔离【万字长文系列】

    文章目录 设计模式经典设计原则-第一节 单一职责原则(SRP) 如何理解单一职责原则? 如何判断类的职责是否足够单一? 类的职责是否设计得越单一越好? 开闭原则(OCP) 如何理解"对扩展开 ...

最新文章

  1. Dev-C++安装和使用教程(手把手傻瓜式教学)
  2. 一段关于Unix与 Linux的暗黑史
  3. JAVA笔记13__创建线程/线程休眠/等待线程终止/线程中断/守护线程
  4. Xilinx IP解析之Processor System Reset v5.0
  5. Codeforces.1110E.Magic Stones(思路 差分)
  6. 移动端分步注册_移动应用程序的可用性测试:分步指南
  7. UNIX下 oracle expdp,Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)
  8. python爬取新浪新闻首页_学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻...
  9. 【高级内部资料】.NET数据批量写入性能分析 第一篇
  10. C++中和“”引用头文件的区别
  11. 调查 | 用户无法识别网络钓鱼攻击
  12. 毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统
  13. visio2016 数据库模型图_数据库相关术语整理
  14. matlab小波具体频段,一种小波包分解节点与对应频段检索及编程方法
  15. NLP实验一:形式语言和自动机
  16. 微信缓存深度清理,一招清理20G隐藏的缓存垃圾
  17. 如何用中文编程c++
  18. Shell修改IP地址
  19. JAVA知识两百问(181~200)
  20. luogu2485 [SDOI2011]计算器 poj3243 Clever Y BSGS算法

热门文章

  1. 建筑CAD《超级绘图王》简介
  2. 洛谷P1786 帮贡排序(冒泡排序法)
  3. EasyPoi快速入门(Excel导入导出工具)
  4. 基于Cloudflare搭建属于自己的GitHub加速站,github下载无忧
  5. Logistic 回归算法原理
  6. 【计算机网络】链路层
  7. qfp封装能够linux,MCU的封装也是很有门道的...
  8. 信息安全入门系列——介绍
  9. C# 使用代码将图片的背景去除
  10. docsify框架java_notes-docsify