Day 21 21.1 数据库之redis

发布时间 2023-04-02 20:31:38作者: Chimengmeng

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;
		}