Redis 安装和数据类型

Redis 安装和数据类型

一、Redis

1、Redis概念

redis 缓存中间件:缓存数据库

nginx web服务

php 转发动态请求

tomcat web页面,也可以转发动态请求

springboot 自带tomcat

数据库不支持高并发,一旦访问量激增,数据库很快就会崩溃

redis的作用:缓存数据库

在这里插入图片描述

redis也是一个数据库,不单是一个缓存工具,

redis非关系型数据库,nosql=not only sql 不仅仅是sql

键值对形式

key value

test1=test2

test1=10 数据的类型不是定义好的类型,根据自定义,系统自动识别

test1=10 string

2、Redis简介

redis:远程字典服务器

键值对、开源的、C语言写的nosql数据库

redis基于内存运行,所有的数据不是保存在硬盘,而是内存

持久化————定期或者人为的把数据保存到硬盘

3、Redis的优点

1、极高的读写速度,读速度可以达到110000次/s,81000次/s

2、支持丰富的数据类型,键值对可以定义多种数据类型 string、list、hash、set

3、支持数据持久化,内存当中数据保存到磁盘

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

5、支持主从模式和高可用模式(哨兵模式),以及集群

缓存雪崩、缓存击穿???

4、应用场景

redis基于内存运行的数据库,缓存是他最常用的应用场景

排行榜、计数器、存储关系、实时分析记录、日志系统

6、Redis缓存

缓存是一种用于存储临时数据副本的技术,目的就是提高访问速度和性能

缓存通常位于数据的访问路径上,数据的必经之路,可以不直接访问原始数据的情况下,可以直接获取数据

缓存的应用场景:

web缓存、数据库缓存、对象缓存(大数据应用)

二、Redis安装部署

安装部署redis

systemctl stop firewalld
setenforce 0
cd /opt # 把包拖进来安装redis的依赖环境
yum install -y gcc-c++ maketar -xf redis-5.0.7.tar.gz
cd redis-5.0.7
make -j 4make PREFIX=/usr/local/redis installcd utils
./install_server.sh
# 默认端口6379
# 注意默认6379后的Please select the redis executable path [] 
/usr/local/redis/bin/redis-server
# Is this ok? Then press ENTER to go on or Ctrl-C to abort. 
按回车  # Installation successful! 表示成功ln -s /usr/localredis/bin/* /usr/local/bin
netstat -antp | grep 6379vim /etc/redis/6379.conf
set nu
70行   bind后增加 本机地址192.168.100.11
93行   默认不动(port 6379)
137行  默认不动(daemonize yes)
159行  默认不动(pidfile /var/run/redis_6379.pid)
172行  默认不动(logfile /var/log/redis_6379.log)
wq!/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 statustail -f /var/log/redis_6379.log# 进入redis的命令
redis-cli -h 192.168.100.11 -p 6379 

三、Redis数据库

# 进入redis的命令
redis-cli -h 192.168.100.11 -p 6379 
-h 指定ip地址
-p 指定端口
-a 密码(没有密码可以不加)
redis-cli 命令行工具
redis-server start stop restart 控制redis的服务状态
redis-benchmark 检查redis的运行效率
redis-check-aof 修复aof持久化的文件
redis-check-rdb 修复rdb持久化的文件redis-benchmark -h 192.168.100.11 -p 6379 -c 100 -n 10000
# 向redis的主机模拟发送100个并发链接,同时发送十万个请求redis-benchmark -h 192.168.100.11 -p 6379 -q -d 100
# 模拟存储100个数据包的性能测试

1、Redis数据类型

命令类型
string字符串
list列表
hash散列,键值对集合
set集合 不重复的无序集合
zset集合 有序集合

2、Redis的常用命令

redis-cli -h 192.168.100.11 -p 6379# 创建键值对   
set 键名 数值  # 获取键值对的数值     
get 健名        # 查看当前数据库有多少键值对
keys *# 查看库当中键值对是否存在
exists 键名
# 存在返回1,不存在返回0# 查看键值的类型
type 键名# 如何删除键值对
del 键名 
# 返回1删除1个 返回2删除2个 可以同时删除多个# 修改键的名字
rename 旧名 新名# 如何给redis添加密码
config set requirepass 123456
# 添加密码auth 123456
# 密码登录config get requirepass
auth 123456

3、Redis数据类型操作

3.1 string类型

是redis的基础类型,最大能够存储512MB的数据(数字、图片等待默认都是string)

append 
# 追加
如何该键不存在,自动添加打印键值长度,该键存在,对已有键进行追加,并显示长度strlen 名字  # 获取值的长度incr 名字   # 值追加1decr 名字   # 值减少1incrby 名字 数值  # 指定加多少decrby 名字 数值 数值 # 指定减多少# 增加生命周期  
setex 名 时间()# 查看生命周期
ttl 名# 查看库里面的键值对有几个
dbsize# 查看Redis有多少个库
config get databases 
# 第一个库是零,每一个库都是独立的,互相不影响# 换库
select 序列号 # 数据迁移(移库)
move 名 序列号# 清空库 和  # 清空所有的库  !!!慎用!!!
flushdb 和  flushall# 如何一次创建多个键值对
mset 键名1 数值 键名2 数值 键名3 数值#一次性查看多个键值对  mget
mget 键名1 键名2 键名3 键名4

3.2 list类型

列表类型

# 创建list类型
lpush 名 值
lpush mykey a b c d# 查看数值
lrange 名 0 -1 
# 0是起始位。-1是列表当中的最后一位  #显示从右往左lrange 名 0 2
# 起始位向后移两位  # 数字表示索引,即代表索引位置# 怎么在列表里面添加元素
lpush 键名 数值# 移除数据
lpop 名   # 从右往左移除数据# 查看键名有多少个元素
llen 名# 指定删除
lrem 名 数字 数值  # 数字表示要删除几个# 如何用索引的方式打印指定的位置(数字表示位置、从右往左)
lindex 名 数字 # 根据索引的位置对指定位置进行替换
lset 名 数字 数值
# 把数字的位置的数值替换成数值# 怎么在指定值的前后进行替换
linsert 名 before 数值1 数值2
# 在数值1的前面插入数值2linsert 名 after 数值1 数值2
# 在数值1的后面插入数值2# 创建数值对   从左往右
rpush 名 数值
lpush mykey a b c d# 移除从右往左
rpop 名

3.3 hash类型

hash类型:散列,用来存储对象,把对象类别和ID构成键名

hash类型存储的空间很小,占用的内存和持久化后磁盘空间都很少

hash是一个键值对,包含多个对象个对象的值

myhash就是一个hash值,一个hash值可以存储4294967295个键对值

# 创建hash类型的键
hset 名 对象名 数值
hset myhash id1 1 id2 2 id3 3# 获取id值
hget myhash id# 查看hash的键对值有几个
hlen myhash# 删除  #只能一个一个删,键名后面必须要加对象
hdel myhash id# 创建多个
hmset myhash id1 1 id2 1# 获取多个值
hmget mhash id1 id2# 查看所有键值对和里面数值
hgetall myhash# 只看键对名
hkeys myhash# 只看键值对里面的数值
hvals myhash# 添加键值对和数值  
hsetnx myhash id4 4

3.4 set类型

set集合:无序集合,元素的类型只能是string,在无序集合当中,元素具有唯一性,不允许重复

应用场景:可以用set的数据来追踪唯一性的数据,比如:IP地址。或者根据客户的ip区分不同客户购买的同一产品

# 创建键值对
sadd myset a b b c# 查看
smembers myset# 添加  # 表中存在的不添加,实际添加数会显示
sadd myset a d e# 查看集合当中的元素有几个
scard myset# 从当前集合随机获取一个值
srandmember myset# 随机删除集合当中任意值
spop myset# 删除指定值
srem myset asrem myset b c# 把myset当中的a移动到myset2当中
smove myset myset2 a

3.5 zset类型

zset集合:有序集合,sorted set,元素类型都是string,元素唯一,不能重复,每个元素都会关联一个double类型的分数score(表示权重),通过权重的大小进行排序,权重可以相同

# 创建
zadd myzet 1 "one"
zadd myzet 2 "two" 3 "three"# 查看成员   # one two three
zrange myzet 0 -1# 查看成员,按照权重大小进行排序   # 权重 1 2 3
zrange myzet 0 -1 withscores# 权重值可以相同,但是成员不可以相同# 获取权重的范围是大于等于2小于等于5   # 展示结果是成员
zrangebyscore myzet 2 5# 排序  # 索引倒序
zrevrange myzet 1 3

3.6 数据类型总结

string 基本类型

list 列表

hash 一个hash可以存储多个对象和对象值,对象名不可重复

set 无序集合 没有重复 没有权限 string

ash

创建

zadd myzet 1 “one”
zadd myzet 2 “two” 3 “three”

查看成员 # one two three

zrange myzet 0 -1

查看成员,按照权重大小进行排序 # 权重 1 2 3

zrange myzet 0 -1 withscores

权重值可以相同,但是成员不可以相同

获取权重的范围是大于等于2小于等于5 # 展示结果是成员

zrangebyscore myzet 2 5

排序 # 索引倒序

zrevrange myzet 1 3


### 3.6 数据类型总结string  基本类型list 列表hash 一个hash可以存储多个对象和对象值,对象名不可重复set 无序集合 没有重复 没有权限 stringzset 有序集合 没有重复 按照权重进行排序 string

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vTESTstudio中如何添加DLL文件?

文章目录 一、CANoe添加DLL二、vTESTstudio中添加DLL1.手动添加2.代码添加 一、CANoe添加DLL 在CANoe中添加DLL的路径如下图,在Simulation Setup中选择需要添加的节点,右键选择Configuration进行添加DLL。 二、vTESTstudio中添加DLL 1.手动添加 在打…

java中 VO DTO BO PO DAO

VO、DTO、BO、PO、DO、POJO 数据模型的理解和实际使用_vo dto bo-CSDN博客 深入理解Java Web开发中的PO、VO、DTO、DAO和BO概念_java dto dao-CSDN博客

【计算机网络】WireShark和简单http抓包实验

一:实验目的 1:熟悉WireShark的安装流程和界面操作流程。 2:学会简单http的抓取和过滤,并分析导出结果。 二:实验仪器设备及软件 硬件: Windows 2019操作系统的计算机等。 软件:WireShark、…

【算法/训练】:动态规划(线性DP)

一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#…

vector清空

https://www.zhihu.com/question/592055868/answer/2967078686

java使用hutool工具检查远程端口是否开启

使用java校验ip地址或域名的端口是否开启 1.导入hutool工具的maven依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>2.复制一下代码案例直接运行 …

前端面试基础题(微信公众号:前端面试成长之路)

BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BFC、IFC、GFC和FFC Whats FC&#xff1f; 一定不是KFC&#xff0c;FC的全称是&#xff1a;Formatting Contexts&#xff0c;是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域&#xff0c;并…

量度卓越:Mojo模型中自定义评估与模型比较的艺术

量度卓越&#xff1a;Mojo模型中自定义评估与模型比较的艺术 在机器学习项目中&#xff0c;模型评估是衡量算法性能的关键步骤。Mojo模型&#xff0c;作为一个先进的机器学习框架&#xff0c;提供了丰富的工具来支持模型评估和比较。本文将深入探讨如何在Mojo模型中实现自定义…

openj9-17.0.2_8-jre-alpine 和 openjdk:17-alpine 的区别是什么?

openj9-17.0.2_8-jre-alpine 和 openjdk:17-alpine 都是用于运行 Java 应用程序的 Docker 镜像&#xff0c;但它们之间有一些关键的区别&#xff1a; JVM Implementation: openj9-17.0.2_8-jre-alpine 使用的是 Eclipse OpenJ9&#xff0c;这是一种高效、低内存消耗的 JVM 实现…

go-sql-driver/mysql 查询 latin1 中文字符集

select name from table; table是 latin1 编码&#xff0c; 返回后查询结果后&#xff0c;即使将 name 转为 utf-8&#xff0c;日志输出中文仍然乱码。 // 配置数据库连接字符串&#xff0c;确保指定charsetlatin1dsn : "user:passwordtcp(127.0.0.1:3306)/dbname?chars…

免费【2024】springboot 宠物领养救助平台的开发与设计

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

每日一练,java07

目录 题目1.请问运行主要的程序会打印出的是什么&#xff08;&#xff09;2.下面论述正确的是&#xff08;&#xff09;&#xff1f;3.下面哪些Java中的流对象是字节流?4.关于以下代码的说明&#xff0c;正确的是&#xff08; &#xff09;5.若需要定义一个类&#xff0c;下列…

普元EOS学习笔记-EOS项目HTTP访问安全和权限控制

前言 对于企业应用系统&#xff0c;出于安全和权限控制的目的&#xff0c;需要对http请求做若干控制。 比如文件上传的时候要控制不允许上传的文件后缀。 又比如控制应用程序中的哪些资源不允许被访问。 EOS项目通过 xml配置文件来实现这一需求。 Http访问管理模块 在EOS项…

Keepalived、MyCAT 和 MHA这三者之间的区别

最近公司要做主备数据库备份和自动切换&#xff0c;先简单的了解了一下这三者的区别。 要做一个主库宕机之后自动切换备库的功能&#xff0c;但是上网搜索了一下发现有三个中间件都可以解决这个问题。 所以就来说一下这三个的业务场景和区别&#xff0c;以及哪一个更加轻量级 …

Spring JPA不生效

今天排查老半天发现数据源被排除装配了&#xff0c;把这个去掉就行了 SpringBootApplication(exclude DataSourceAutoConfiguration.class)

vue项目的路由如何传参,应用场景

路由传参方法一&#xff1a; params 1. 在路由的配置中 path: url:proid 先在配置中添加 2. 跳转页面的时候携带拼接参数 router.push(url proid) 3. 在进入的页面通过 useRoute 进行接收 4. const route useRoute() 5. console.log(route.params.proid); 路由传参方法二…

DBoW3相关优化脉络

1 DBow3 GitHub - rmsalinas/DBow3: Improved version of DBow2 2 优化后得到fbow GitHub - rmsalinas/fbow: FBOW (Fast Bag of Words) is an extremmely optimized version of the DBow2/DBow3 libraries. 其中fbow是ucoslam的一部分&#xff1b; ucoslam GitHub - la…

【C++版本】protobuf与gRPC

文章目录 一、Protobuf二、安装以及使用protoc参考 一、Protobuf Google Protocol Buffers&#xff08;protobuf&#xff09;是一种语言中立、平台中立的序列化协议&#xff0c;旨在高效地将结构化数据进行序列化和反序列化。它主要用于通信协议、数据存储和其他需要高效编码和…

封装和桥接Unity 协程体系

简介 协程&#xff08;Coroutine&#xff09;在C#中是一种特殊的函数&#xff0c;它允许开发者编写可以暂停执行并在未来某个时刻恢复执行的代码块。协程通常用于实现异步操作&#xff0c;如延时执行、等待某个事件发生、或者分段执行复杂的任务。在Unity游戏引擎中&#xff0c…

(Arxiv-2023)MobileDiffusion:移动设备上即时文本到图像生成

MobileDiffusion&#xff1a;移动设备上即时文本到图像生成 Paper Title&#xff1a;MobileDiffusion: Instant Text-to-Image Generation on Mobile Devices Paper是谷歌出品 Paper地址 图 1&#xff1a;MobileDiffusion 用于 (a) 文本到图像的生成。(b) Canny 边缘到图像、风…