首页 > 数据库 >Redis知识

Redis知识

时间:2022-11-21 16:44:39浏览次数:63  
标签:127.0 runoob 0.1 Redis 知识 redis 6379 integer

1 redis是什么

https://www.cnblogs.com/qqflying/p/9192331.html

redis - Remote Dictionary Server(即远程字典服务),是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。

redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)

目前,Vmware在资助着redis项目的开发和维护。

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

2 redis数据结构

redis是一种高级的key:value存储系统,其中value支持五种数据类型:

1.字符串(strings)

redis 127.0.0.1:6379> SET runoob "菜鸟教程"
OK
redis 127.0.0.1:6379> GET runoob
"菜鸟教程"

注意:一个键最大能存储 512MB。

2.字符串列表(lists)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabbitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>

3.字符串集合(sets)

Redis 的 Set 是 string 类型的无序集合

redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabbitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabbitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob

1) "redis"
2) "rabbitmq"
3) "mongodb"

4.有序字符串集合(sorted sets)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabbitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabbitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE runoob 0 1000
1) "mongodb"
2) "rabbitmq"
3) "redis"

5.哈希(hashes)

redis 127.0.0.1:6379> DEL runoob
redis 127.0.0.1:6379> HMSET runoob field1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET runoob field1
"Hello"
redis 127.0.0.1:6379> HGET runoob field2
"World"

实例中我们使用了 Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value

每个 hash 可以存储 232 -1 键值对(40多亿)。

 

类型简介特性场景
String(字符串) 二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M ---
Hash(字典) 键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) 存储、读取、修改用户属性
List(列表) 链表(双向链表) 增删快,提供了操作某一段元素的API 1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列
Set(集合) 哈希表实现,元素不重复 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐
Sorted Set(有序集合) 将Set中的元素增加一个权重参数score,元素按score有序排列 数据插入集合时,已经进行天然排序 1、排行榜 2、带权重的消息队列

3 redis配置 – 复制

redis提供了主从同步功能。通过slaveof配置项可以控制某一个redis作为另一个redis的从服务器,通过指定IP和端口来定位到主redis的位置。一般情况下,我们会建议用户为从redis设置一个不同频率的快照持久化的周期,或者为从redis配置一个不同的服务端口等等。

当从redis失去了与主redis的连接,或者主从同步正在进行中时,redis该如何处理外部发来的访问请求呢?这里,从redis可以有两种选择:

第一种选择:如果slave-serve-stale-data设置为yes(默认),则从redis仍会继续响应客户端的读写请求。

第二种选择:如果slave-serve-stale-data设置为no,则从redis会对客户端的请求返回“SYNC with master in progress”,当然也有例外,当客户端发来INFO请求和SLAVEOF请求,从redis还是会进行处理。

 

标签:127.0,runoob,0.1,Redis,知识,redis,6379,integer
From: https://www.cnblogs.com/ningshare/p/16911800.html

相关文章

  • Redis学习笔记
    什么是NoSQL相对于传统的关系型数据库(MySQL、Oracle等)的行列模式,在大数据时代很难正常运行,所以产生了NoSQL的一种数据库用来存储访问量比较高的数据,常见的NoSQL数据库有......
  • 心理健康知识科普
    大家知道什么是心理健康吗?心理健康重要在哪里呢?你真的确定自己处于心理健康状态吗? 一、什么是心理健康      健康并不单指没有疾病,它包括躯体健康、心理健康......
  • 心理健康小知识|拒绝内耗 与自己和解
    “停止精神内耗,学会与自己和解,是人生变好的开始。”有人曾说:“所谓人生困境,不过是你胡思乱想,自我设置的枷锁。”内耗就像是一种病毒,表面上看不见、摸不着,却在暗地里不断......
  • redis开启多端口
    Centos安装多端口的redis服务背景redis默认端口6379,由于开发需要,key有重复。于是另起端口6380。配置服务过程1、新建/etc/redis6380.conf,内容如下:bind0.0.0.0po......
  • SpringMVC知识
    1Spring框架Spring框架指的都是SpringFramework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。Spring自带IoC(InverseofControl:控制反转)和A......
  • spring boot调试redis报错:Unable to connect to Redis; 问题记录
    1、代码packagecom.example.spring1121;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springfr......
  • redis事务
    redis事务事务一般包括多个操作,不能被打断Multi、Exec、discard从输入multi命令开始,输入的命令都是依次进入命令队列中,但不会执行,直到输入exec后,redis会将之前的命令......
  • 【Azure Redis 缓存】Redis 连接失败
    问题描述AzureRedis出现连接失败,过一会儿后,又能自动恢复。 问题解答其实,因为AzureRedis服务一直都有升级维护的操作(平均每月一次),Redis服务更新是平台自动进行的计划内......
  • 渗透测试基础知识
    域名:1.什么是域名2.域名在哪里注册? 万网,阿里云3.什么是二级域名多级域名?顶级域名(一级域名):分为三类: 国家顶级域名  (例如 中国.cn 美国.us)、地区顶级域名......
  • SpringBoot自定义注解+AOP+redis实现防接口幂等性重复提交,从概念到实战
    一、前言在面试中,经常会有一道经典面试题,那就是:​​怎么防止接口重复提交?​​​小编也是背过的,好几种方式,但是一直没有实战过,做多了管理系统,发现这个事情真的没有过多的重......