当前位置: 首页 > news >正文

redis非关系型数据库

1.redis

redis:开源的,使用c语言编写的NQL数据库

redis:基于内存运行,支持持久化(数据恢复)。采用的就是key-value(键值对)的存储形式,目前在分布式架构中,非常重要的一环

redis服务器程序,是一个单进程模式,即只有一个主进程工作。也就是在一台服务器上可以启动多个redis(端口号不能冲突)

redis的实际处理速度是完全依靠主进程的执行效率

服务器只部署了一个redis进程,多个客户端访问,可能会导致redis的处理能力下降

如果部署了多个redis进程,虽然能提高redis的并发处理能力,但是会给服务器的cpu带来很大的压力

一台服务器,一般部署3个redis进程。(根据情况来看,高并发要部署多个,一般的情况,单进程足够)

1.1 redis的特点

1.具有极高的读写速度,数据读取每秒110000次,写入数据每秒可以执行81000的写入

2.支持丰富的数据类型

3.支持持久化,平常的数据都是保存在内存中,持久化可以写入到磁盘中,既可以保存到本地,也可以实现备份。

4.原子性,所有的操作都是原子性

5.支持主从模式---master--slave模式

1.2 redis为什么这么快?

1.redis是纯内存结构,避免磁盘I/O的耗时

2.核心模块是一个单进程,减少了线程切换和回收线程的时间。

3.I/O的多路复用机制,每一个执行线路,都可以同时执行读和写。高并发的效率大大提高

特殊说明:redis的读写仍然是单进程处理

2.redis和mysql的区别

1、数据的存储方式不同。

2、扩展方式不同,性能上的提升,关系型数据库靠的是提升本机性能。非关系型数据库,可以横向扩展,加入节点服务器的方式提高性能

3、对事务的支持性,mysql支持事务,非关系型数据库也支持事务,redis也可以支持事务,但是稳定性和处理能力都不如关系型数据库。

3.redis的数据类型

redis的特点:读写速度快

数据类型:

1.string:也是redis最基本的类型,最多能存储512MB的数据,可以存储任何数据:数字,文字,图片,等等

2.list :列表当中的元素还是string类型

3.hash :对一个键进行多字段操作要用hash 节省内存空间

4. 无序集合 :set 元素不能重复 可以用来定义唯一值

5.有序集合 :zset 元素不能重复 但是权重可以相同,用来排名

6.位图(BitMap):存储位数据,可以进行位级别的操作。常用命令:SETBIT、GETBIT、BITCOUNT。

7.HyperLogLog:用于基数估算的数据结构。常用命令:PFADD、PFCOUNT。

8.地理位置(GeoSpatial):存储地理位置信息。常用命令:GEOADD、GEODIST、GEORADIUS。

4.string类型

keys * 查看所有键值对

set test guoqi

get test

keys test 查看键值对test

keys t* 查看t开头

keys t?查看t开头后的一位

exists test 查看这个键值对是否存在 1为存在 0为不存在

del test 删除键值对

type test 查看键值对的类型

append test1 hello 键不存在直接写入hello

append test1 work 键存在 把word增加进去

strlen test1 直接返回键的长度

incr test1 递增1(只能对数字)

decr test1 递减1

incrby test1 10 增加10

decrby test1 10 减10

setex test2 15 10 设置生命周期 15s

ttl test2 查看生命周期当为-2 表示已过期 -1表示永不过期

expire test 30 已有键值对 设置生命周期

mset key1 hello key2 world 批量设置

5.list数据类型

lpush guoqi a b c d 1 2 3 创建表 从左往右

lrange guoqi 0 -1 查看表 倒叙排序

lindex guoqi 0 打印第一个数

rpush guoqi1 1 2 3 4 创建表 从右往左

lrange guoqi1 0 -1

lrange guoqi1 1 2

lpushx guoqi1 10 添加10

rpushx guoqi1 10

rpop guoqi1 删除一个

llen guoqi1 查看长度

lset guoqi1 3 shuai 将下标为3的为shuai

linsert guoqi before shuai zd 在shuai前面插入一个za

lrem test2 3 1 删除3个为1的值

6.hash类型

hset guoqi2 tall yes

hget guoqi tall 查看一个字段

hset guoqi2 handsan yes 设置字段

hmget guoqi2 tall handsan 查看多个字段

hdel guoqi2 handsan tall 删除多个

hmset guoqi3 tall rich fangchanzheng yes age 23 多个字段

hmget guoqi3 tall fangchanzheng age 查看多个字段

hgetall guoqi3 直接查询所有

hkeys guoqi3 查看字段名称

hvals guoqi3 查看键对应的字段

del guoqi3 删除guoqi3

7.set数据类型

fushall 清除所有的当前类型

sadd myset a a c 创建 不能重复

smembers myset 查看 myset

sismember myset c 判断c是否存在1为有

sismember myset f 0为不存在

srandmember myset 随机选择一个查看

spop myset 删除

srem myset a e f 删除多个

8.有序集合

zadd myzset 1 one 创建 权重1 元素one

zadd myzset 2 two 3 three

zrange myzset 0 -1 withscores 查看

zrank myzset one 查看索引位置

zcard myzset 获取成员数量

zcount myzset 1 2 统计权重数量为 1-2

zrem myzset three 删除

zrange myzset 0 -1 withscores

zscore myzset two 查看权重

http://www.lryc.cn/news/237792.html

相关文章:

  • LeetCode 0053. 最大子数组和:DP 或 递归(线段树入门题?)
  • 二十三种设计模式全面解析-解密职责链模式:请求处理的设计艺术
  • 【linux】安装telnet
  • 深入探索 PaddlePaddle 中的计算图
  • 西南科技大学814考研一
  • 【网络编程】简述TCP通信程序,三次握手,四次挥手
  • 【ARM Trace32(劳特巴赫) 使用介绍 5 -- Trace32 ELF 文件加载介绍】
  • Linux(4):Linux文件与目录管理
  • Altium Designer学习笔记2
  • Atlassian发布最新补贴政策,Jira/Confluence迁移上云最低可至零成本
  • 基于FPGA的五子棋(论文+源码)
  • QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序
  • windows如何查看自己的ip地址
  • Camera2的使用【详细】
  • Playcanvas后处理-辉光bloom
  • GCC 学习
  • 2023数维杯数学建模C题完整版本
  • 快速解密PPT幻灯片密码,让PPT重见天日
  • 十六、RabbitMQ快速入门
  • C#WPF用户控件及自定义控件实例
  • 大模型的语言能力
  • 直播岗位认知篇
  • 后端技术知识点内容-全部内容-面试宝典-后端面试知识点
  • 3.ubuntu20.04环境的ros搭建
  • 米诺地尔行业分析:预计2029年将达到14亿美元
  • 在Spring Boot中使用Thymeleaf开发Web页面
  • 2023年亚太杯数学建模思路 - 案例:感知机原理剖析及实现
  • linux高级篇基础理论五(用户安全,口令设置,JR暴力破解用户密码,NMAP端口扫描)
  • 鸿蒙原生应用/元服务开发-AGC分发如何配置版本信息(上)
  • 探索Scrapy中间件:自定义Selenium中间件实例解析