Redis

Redis 是一个高性能的键值对数据库,常用于缓存。本文涵盖了 Redis 的基本概念、安装、数据类型(如字符串、list、hash、set、zset)、持久化(RDB 和 AOF 的优缺点)、集群搭建、缓存穿透、击穿和雪崩的解决方案。通过理解这些内容,读者可以更好地理解和使用 Redis。
摘要由CSDN通过智能技术生成

什么是redis?

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。redis是将数据存放到内存中,由于内容存取速度快所以redis被广泛应用在互联网项目中。

为什么用redis?

在使用mysql存储数据时,由于mysql是将数据写入到硬盘中,频繁的读取会导致硬盘的压力大。为了更好的保护硬盘,延长其使用寿命,我们就将一些会大量访问的资源先缓存到redis上,因为redis是将内容存储到内容中读取快,而且redis中数据不会担心丢失问题,丢失了在从MySQL中读取缓存下来即可,这样就减轻了mysql的压力

安装

Liunx版安装步骤

# 下载
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
# 加压
tar -zxvf redis-6.2.7.tar.gz
# 移动并改名
mv redis-6.2.7 /usr/local/redis
# 安装c语言环境
yum install -y gcc
# 编译
make
# 清理make命令的缓存
make distclean
# 安装
make install
# 安装并指定安装目录
make install PREFIX=/usr/local/redis
# 启动服务和客户端
/usr/local/redis/bin/redis-server
/usr/local/redis/bin/redis-cli

启动缺点:以上方式启动会占用命令窗口,所以不建议使用

推荐以下方式:

第一步:进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下

cp /usr/upload/redis-3.0.0/redis.conf  /usr/local/redis/bin

第二步:修改/usr/java/redis/bin下的redis.conf,将daemonize由no改为yes
在这里插入图片描述

第三步:启动

./redis-server redis.conf

关闭

到redis/bin目录下执行如下命令

./redis-cli -p 端口号 shutdown

数据类型

默认16个数据库

一个redis实例可以包括多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个mysql中创建多个数据库,客户端连接时指定连接哪个数据库。

一个redis实例最多可提供16个数据库,下标从015,客户端默认连接第0号数据库,也可以通过select选择连接哪个数据库

注意:redis不支持修改数据库的名称,只能通过select 0、select 1…选择数据库。

切换数据库命令

select index命令切换数据库 (0-15)

常用基本命令

dbsize查看当前数据库的key的数量

flushdb:清空当前库

Flushall;清空全部库

其它说明

统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上

Redis索引都是从零开始0-15

redis五种数据类型

字符串类型

Map<String,String>

字符串类型是编程语言和应用程序中最常见和最有用的数据类型,也是Redis的基本数据类型之一,事实上,Redis中所有键都必须是字符串。

语法set key value  存放key-vulue 
   get key  获取key的值
   getset name new_cxx 设置值,返回旧值
   mset key1 v1 key2 v2 批量设置  
   mget key1 key2 批量获取
   setnx key value 不存在就插入(set if not exists) 分布式锁
   incr age 递增
   incrby age 10 递增
   decr age 递减
   decrby age 10 递减
   strlen 长度
   getrange name 0 -1 字符串分段   0 -1是全部   0 -2  ==n-1
   setrange key index value 从index开始替换value
   incrbyfloat 增减浮点数
   append 追加
   object encoding key  得到key 的类型  string里面有三种编码
           int  用于能够作用64位有符号整数表示的字符串
           embstr 用于长度小于或等于44字节  Redis3.x中是39字节,这种类型的编码在内存使用		  时性能更好
           raw  用于长度大于44字节的

list数据类型

Map<String,List>

列表是应用我只是应该程序开发中非常有用的数据类型之一,列表能存在一组对象,因此它也可以被用于栈或者队列,在Redis中,与键相关的联的值可以是字符串组成的列表,Redis中的列表更像是数据结构中的双向链表。

语法lpush key  values    l=left    r =rigth     
lpush mylist a b c 左插入
    rpush mylist x y z 右插入
    lrange mylist 0 -1 取出数据集合  0 -1是取出所有   0   1取第一个和第二个
    lpop mylist 弹出集合最后一个元素  弹出之后就没有了哦
    rpop mylist 弹出第一个元素  弹出之后就没有了哦
    lrem mylist count value 删除
        |-COUNT 的值可以是以下几种:
            |--count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
            |--count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
            |--count = 0 : 移除表中所有与 VALUE 相等的值。
    lindex mylist 2 指定索引的值
    llen mylist 长度  
    lset mylist 2 n 索引设值
    ltrim mylist 0 4   
            |--对一个列表进行修剪(trim),就是说,让
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值