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)往下走&#…

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

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

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

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

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

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

【C++版本】protobuf与gRPC

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

封装和桥接Unity 协程体系

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

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

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

docker容器cuda不可用,怎么解决?

通过Docker 构建的镜像中,启动之后,发现容器内部读取不到显卡驱动nvidia-smi 1、设置 NVIDIA Docker 存储库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add

Docker容器基础篇

一.Docker容器简要介绍 Docker 是一个开源项目,旨在提供轻量级的应用容器化解决方案。它允许开发者打包应用及其所有依赖项到一个标准化的单元中,称为容器。这些容器可以在开发人员的工作环境中构建,然后轻松地在不同的计算机、服务器或云平…

Redis的分布式锁

目录 一、定义与原理 基于Redis的分布式锁 获取锁 释放锁 锁误删问题:因为key值一样,将别人的锁删掉了 锁误判问题二:判断锁和释放锁不是原子性的 Lua脚本 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁 分布式锁的优点…

Spring Cache常用注解

依赖代码如下&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency> 常用注解详解 1. Cacheable 作用&#xff1a;主要用于配置方法&#xff0c;使其…

Java编写SIP协议

1、编写Server代码 package com.genersoft.iot.vmp.sip; import javax.sip.*; import javax.sip.message.*; import javax.sip.header.*; import java.util.*;public class SimpleSipServer implements SipListener {private SipFactory sipFactory;private SipStack sipStack…

【前端】一文带你了解 CSS

文章目录 1. CSS 是什么2. CSS 引入方式2.1 内部样式2.2 外部样式2.3 内联样式 3. CSS 常见选择器3.1 基础选择器3.1.1 标签选择器3.1.2 类选择器3.1.3 id 选择器3.1.4 通配符选择器 3.2 复合选择器3.2.1 后代选择器 4. CSS 常用属性4.1 字体相关4.2 文本相关4.3 背景相关4.4 设…

前端必备基础【网络通信】(2024最新版)

Ajax Asynchronous Javascript and XML 的缩写&#xff0c;是使用 JS 发起网络通信的技术统称&#xff0c;具体步骤为&#xff1a; 创建 XMLHttpRequest 实例发出 HTTP 请求接收服务器传回的数据更新网页数据&#xff08;通常是部分内容&#xff0c;而不是整个网页&#xff09…

LLM - 理解 大模型 Batch 推理的 Padding Side (左填充或右填充)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140697827 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 使用 Left Padding (左填充) 或者 Right Padding (右填充),HuggingFac…

DBeaver安装与使用教程 免费的连接mysql数据库软件

一、DBeaver安装 &#xff08;一&#xff09;Dbeaver下载 DBeaver 是一个通用的数据库管理工具和 SQL 客户端&#xff0c;免费&#xff0c;跨平台&#xff0c;支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。 官网…

带你学会Git必会操作

文章目录 带你学会Git必会操作1Git的安装2.Git基本操作2.1本地仓库的创建2.2配置本地仓库 3.认识一些Git的基本概念3.1操作流程&#xff1a; 4.一些使用场景4.1添加文件场景一4.2查看git文件4.3修改文件4.4Git版本回退4.5git撤销修改 5.分支管理5.1查看分支5.2创建本地分支5.3切…