首页 > 数据库 >Day 21 21.1 数据库之redis

Day 21 21.1 数据库之redis

时间:2023-04-02 20:35:35浏览次数:46  
标签:缓存 21.1 string redis Redis key 类型 Day

Redis

redis介绍

定义

Redis(Remote Dictionary Server ,远程字典服务) 是一个使用ANSIC编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库,是NoSQL数据库。

  • redis的出现主要是为了替代早期的Memcache缓存系统的。
  • map内存型(数据存放在内存中)的非关系型(nosql)key-value(键值存储)数据库,支持数据的持久化(基于RDB和AOF
    • 注: 数据持久化时将数据存放到文件中,每次启动redis之后会先将文件中数据加载到内存,经常用来做缓存、数据共享、购物车、消息队列、计数器、限流等。
    • (最基本的就是缓存一些经常用到的数据,提高读写速度)。

redis特性:

  • 速度快
  • 持久化
  • 多种数据结构
  • 支持多种编程语言
  • 主从复制
  • 高可用、分布式

Redis的数据类型及主要特性

Redis提供的数据类型主要分为5种自有类型和一种自定义类型,这5种自有类型包括:String类型、哈希类型、列表类型、集合类型和顺序集合类型。

redis={
"name":"dream",
"age":"23",
"scors":[78,79,98,],
"info":{"gender":"male","tel":"110"},
"set":{1,2,3},
"zset":{1,2,3,}
}

Redis的应用场景有哪些?

Redis 的应用场景包括:

缓存系统(“热点”数据:高频读、低频写):缓存用户信息,优惠券过期时间,验证码过期时间、session、token等

计数器:帖子的浏览数,视频播放次数,评论次数、点赞次数等

消息队列,秒杀系统

社交网络:粉丝、共同好友(可能认识的人),兴趣爱好(推荐商品)

排行榜(有序集合)

发布订阅:粉丝关注、消息通知

redis环境安装

redis的官方只提供了linux版本的redis,window系统的redis是微软团队根据官方的linux版本高仿的。

官方原版: https://redis.io/

中文官网:http://www.redis.cn

下载地址:https://github.com/tporadowski/redis/releases

  • 使用以下命令启动redis服务端
redis-server C:/tool/redis/redis.windows.conf

  • 关闭上面这个cmd窗口就关闭redis服务器服务了。

  • redis作为windows服务启动方式
redis-server --service-install redis.windows.conf
  • 启动服务:redis-server --service-start

  • 停止服务:redis-server --service-stop

# 如果连接操作redis,可以在终端下,使用以下命令:
redis-cli

redis数据类型

redis可以理解成一个全局的大字典,key就是数据的唯一标识符。根据key对应的值不同,可以划分成5个基本数据类型。

redis = {
    "name":"dream",
    "scors":["100","89","78"],
    "info":{
        "name":"meng"
        "age":22
    },
    "s":{item1,itme2,..}
}

1. string类型:
	字符串类型,是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,也就是byte类型。
	单个数据的最大容量是512M。
		key: 值
	
2. hash类型:
	哈希类型,用于存储对象/字典,对象/字典的结构为键值对。key、域、值的类型都为string。域在同一个hash中是唯一的。
		key:{
            域(属性): 值,
            域:值,            
            域:值,
            域:值,
            ...
		}
3. list类型:
	列表类型,它的子成员类型为string。
		key: [值1,值2, 值3.....]
		
4. set类型:
	无序集合,它的子成员类型为string类型,元素唯一不重复,没有修改操作。
		key: {值1, 值4, 值3, ...., 值5}

5. zset类型(sortedSet):
	有序集合,它的子成员值的类型为string类型,元素唯一不重复,没有修改操作。权重值(score,分数)从小到大排列。
		key: {
			值1 权重值1(数字);
			值2 权重值2;
			值3 权重值3;
			值4 权重值4;
		}

标签:缓存,21.1,string,redis,Redis,key,类型,Day
From: https://www.cnblogs.com/dream-ze/p/17281190.html

相关文章

  • Day 21 21.2 数据库之Python操作redis
    Python操作redis(1)连接redis#方式1importredisr=redis.Redis(host='127.0.0.1',port=6379)r.set('foo','Bar')print(r.get('foo'))#方式2importredispool=redis.ConnectionPool(host='127.0.0.1',port=63......
  • Day 21 21.3 数据库之MongoDB
    MongoDB一般爬虫使用的数据库,是根据项目来定的。如需求方指定了使用什么数据库、如果没指定,那么决定权就在爬虫程序员手里,如果自选的话,mysql和mongodb用的都是比较多的。但不同的数据库品种有各自的优缺点,不同的场景任何一种数据库都可以用来存储,但是某种可能会更好。......
  • Day 21 21.4 数据库之Python操作MongoDB
    PyMongo在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库。安装:pipinstallpymongo添加文档importpymongoclient=pymongo.MongoClient(host='localhost',port=27017)"""......
  • redis高可用
    一、关系数据库与非关系型数据库1.1关系型数据库1.关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录2.SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作3.主流的关系型数据库包括Oracle、MySQ......
  • K8S用yaml资源清单部署redis数据库,数据持久化保存
    1.创建redis存储数据目录和配置文件mkdir-p/data/redis/redis-config/touch/data/redis/redis-config/redis.confcat>>/data/redis/redis-config/redis.conf<<EOFrequirepass123456bind0.0.0.0save9001save30010save6010000EOF2.编写redis的yaml资源清单api......
  • Redis面试题
    NoSQL是什么?NoSQL(NotOnlySQL的缩写)泛指非关系型的数据库,主要针对的是键值、文档以及图形类型数据存储。并且,NoSQL数据库天生支持分布式,数据冗余和数据分片等特性,旨在提供可扩展的高可用高性能数据存储解决方案。一个常见的误解是NoSQL数据库或非关系型数据库不能很好地存......
  • day14| 94.二叉树的中序遍历;144.二叉树的前序遍历;145.二叉树的后序遍历
    94.二叉树的中序遍历 思路:1.找出重复的子问题这个重复的子问题是:先遍历左子树、再取根节点、最后遍历右子树2.确定终止条件当节点为空是,返回 代码如下:#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,......
  • 算法随想Day51【单调栈】| LC739-每日温度、LC496-下一个更大元素Ⅰ
    LC739.每日温度vector<int>dailyTemperatures(vector<int>&temperatures){intsize=temperatures.size();vector<int>result(size,0);vector<int>sta;sta.push_back(0);for(inti=1;i<size;++i){......
  • 算法随想Day52【单调栈】| LC503-下一个更大元素Ⅱ、LC42-接雨水
    LC503.下一个更大元素Ⅱ对于“每日温度”,相当于对nums数组,进行了两次遍历。用i%size所得余数作为下标,且循环的圈数为size*2vector<int>nextGreaterElements(vector<int>&nums){intsize=nums.size();vector<int>result(size,-1);vector<int>sta;......
  • 算法随想Day53【单调栈】| LC84-柱状图中最大的矩形
    intlargestRectangleArea(vector&heights){intresult=0;stackst;heights.insert(heights.begin(),0);heights.push_back(0);st.push(0);for(inti=1;i<heights.size();i++){if(heights[i]>heights[st.top()]){st.push(......