当前位置 : 主页 > 编程语言 > 其它开发 >

redis的入门学习(一)reids介绍和安装

来源:互联网 收集:自由互联 发布时间:2022-06-21
什么是redis redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。 它是一个非关系型数据库 NoSQL数据库介绍 1.技术发展 技术的分类 1.解决功
什么是redis

redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。

它是一个非关系型数据库

NoSQL数据库介绍

1.技术发展

技术的分类

1.解决功能性的问题:如 Java、Jsp、Tomcat、Linux、JDBC、SVN
2.解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis
3.解决性能的问题:NoSQL、java线程、Nginx、MQ、ElasticSearch
NoSQL的概述

Nosql不只是SQL泛指非关系型的数据库。

Nosql不依赖业务逻辑方式存储、而已简单的key-value模式存储。因此大大增加了数据库的扩展能力。

不遵循SQL标准
不支持ACID
远超SQL的性能
NoSQL的适用场景
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境。
6.对数据高并发的读写
7.海量数据的读写
8.对数据高可扩展性的
NoSQL不适用场景
需要事务支持
基于sql的结构查询存储,处理复杂的关系,需要既席查询
(用不着sql和用了sql也不行的情况、请考虑用nosql)
NoSQL的特点 

1、易扩展

NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。

2、大数据量、高性能

NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。

一般MySQL使用Query Cache。NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。

3、灵活的数据模型

NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是——个噩梦。这点在大数据量的Web 2.0时代尤其明显。

4、高可用

NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra、HBase模型,通过复制模型也能实现高可用。

Mecache

 

 Redis

 

 MongoDB

 

 Hbase

 

 

Cassandra 

 

概述和安装 Redis的概述

Redis是一个开源的key-value存储系统

Redis五种数据类型分别是string(字符串),hash(哈希),list(列表),set(集合)及sort set (有序集合)

这些数据都支持 push/pop、add/remove及职交集和差集更丰富的操作,而且这些操作都是原子性的。

在此基础上、Redis支持不同方式的排序

为了保证效率、Redis的数据都是缓存在内存中的。

Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中  

Redis的应用 

高频率、热门访问的数据、降低数据库IO

分布式架构、做session共享

Redis的安装

打开官网

https://redis.io/download/

下载地址

https://download.redis.io/releases/redis-6.2.7.tar.gz

windows下载安装redis6

redis6以下去GitHub进行修改下载地址如下:

https://github.com/tporadowski/redis/releases

Redis-6.2.7下载

下载地址:https://download.redis.io/releases/redis-6.2.7.tar.gz

编译Redis需要gcc和make,我们就用MSYS2来提供gcc和make环境。

先下载MSYS2,我用的清华的源 https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/ 

里面有安装版(后缀是exe)和免安装版(后缀是 tar.xz),我选的免安装版

下载解压,然后需要给pacman(msys2的软件管理器)换一下国内源(参考自清华的换源教程 。

换源很简单,在 解压后的msys2目录下的 /etc/pacman.d/ 里有这三个文件

 

文件里自带清华源的地址,把地址放到第一行就可以了(一定要放在第一行),三个文件都要改。这三个地址是不一样的,别把地址写错了。

地址分别是:

后缀为mingw32的:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

mingw64的:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

msys的:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

然后双击 msys2.exe 打开msys2,第一次运行会初始化一下。

初始化完在msys2里执行刷新软件包数据的命令:

pacman -Syu


就可以下载gcc和make了:

pacman -S gcc make

然后去github下载Redis的源码,也可以在上一步顺便安装git来下载源码。

源码地址:https://github.com/redis/redis

不想下载不稳定版可以在左上角选择版本:

 

下载的是压缩包要先解压下,然后在msys2里cd进入解压后的目录。Windows的C盘对应 /c ,我的解压在了 D:/redis/ 目录下,所以对应的目录是 /D/redis

cd /D/redis/
例如


然后直接编译就可以了, PREFIX= 后面的目录是要把Redis生成到哪里

make PREFIX=/e/Msys2/tmp install

 

中间会出一些警告,不影响编译,问题不大。如果看上图那个未找到命令不顺眼,可以执行 pacman -S pkg-config 。

编译Redis 6.2预览版时(不是这个版本的跳过这一步):
出现 “错误:未知的类型名‘Dl_info’”:(此时会编译失败)
找了找问题,是 /usr/include/dlfcn.h 这个文件由于 #if 的选项导致没有去定义 Dl_info 这个结构体。

解决方式:

进入 msys2 所在目录的 usr/include/ 下,找到 dlfcn.h ,复制站贴做个备份。

然后打开 dlfcn.h ,找到 Dl_info定义的地方,删除上面的 #if 和下面的 #endif 两行,再次编译即可。


编译完之后记得恢复备份

编译完就可以在刚才指定的目录里看到Redis了:

 

最后在Msys2目录里搜索 dll文件,找到 msys-2.0.dll 复制下来

 

 

 

放到Redis目录就可以了

记得把 redis.conf 和 sentinel.conf 这两个配置文件也复制过去

现在除了之前 make PREFIX=xxx install 这一步里指定的 xxx 这个文件夹(这里是 tmp 文件夹),其他的都没用了可以删了。
换成cmd,运行一下

启动服务:

 

启动客户端:

 

完成

安装在Linux
#把文件先上传的Linux中 /opt 目录下
上传完成进行查看验证
#进入 opt
cd /opt
#查看
ls 
#查看是否存在gcc
gcc --version
#下载使用gcc
yum install gcc
#验证是否安装成功
gcc --version
#查看
ls
#解压
tar -zxvf redis-6.2.6.tar.gz
#查看
ls
#进入redis中src下
cd redis-6.2.7/src
#make编译
make
#如果没有问题则执行
make install PREFIX=/usr/local/redis
#安装完成后则会在cd /usr/local/redis下生成内容 
cd /usr/local/redis/bin
ll
#前台启动不推介
redis-server
#后台启动
备份redis.conf
拷贝一份redis.conf到其他目录
mkdir /usr/local/redis/etc

mv /root/redis-6.2.7/redis.conf /usr/local/redis/etc

#进入etc目录
cd /etc
#查看
ll
后台设置启动daemonize no改为yes
bind 127.0.0.1改为0.0.0.0 #允许外部连接
daemonize no 改为yes #允许后台启动
appendonly no 改为yes #持久化
修改peotected-mode yes 改为no  #protected-mode参数是为了禁止外网访问redis,如果启用了,则只能够通过localhost ip (127.0.0.1)访问Redis
requirepass 123456  #密码
#退出
:wq
#进入/usr/local/bin
cd /usr/local/bin
#查看
ls
#后台启动
redis-server /etc/redis.conf
#查看是否启动
ps -ef | grep redis  

解决方案:运行make distclean

安装目录的介绍

 

 

配置开机自启动

开启自启动配置的是systemd的方式。

1.创建redis.service文件
进该目录/etc/systemd/system后 ,创建redis.service文件,并编写脚本,如下是操作命令。

vi /etc/systemd/system/redis.service

脚本内容如下

# 如下是脚本内容,将内容复制进redis.service文件中

[Unit]
# 自定义的服务描述
Description=redis-server
# 依赖,在network服务之后启动
After=network.target

[Service]
Type=forking
# redis启动的命令
ExecStart=/usr/local/redis/bin/redis-server /usr/local/etc/redis.conf
# redis重启的命令
ExecReload=/usr/local/redis/bin/redis-server -s reload
# redis停止的命令
ExecStop=/usr/local/redis/bin/redis-server -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2.设置开机自启
编辑保存redis.service文件后,启动该服务

# 重新加载所有的service服务

systemctl daemon-reload

#配置镜像

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置redis.service开机自动

systemctl enable redis.service

# 启动redis 服务

systemctl start redis.service

3.设置redis客户端软连接
设置软连接后,就只用输入redis即可连接redis服务端了

cp /usr/local/redis/bin/redis-cli /usr/bin/redis-cli
cp /usr/local/redis/bin/redis-server /usr/bin/redis-server

# 软链接方式
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis-cli

#创建成功后就可以在本机直接使用 redis 连接

#redis
#auth 213121

4.redis服务操作命令

systemctl start redis.service #启动redis服务
systemctl stop redis.service #停止redis服务
systemctl restart redis.service #重新启动服务
systemctl status redis.service #查看服务当前状态
systemctl enable redis.service #设置开机自启动
systemctl disable redis.service #停止开机自启动

 测试

#启动redis
redis-cli
#redis的关闭
redis-cli shutdown单实例关闭
或者ps -ef |grep redis #查询redis进程
kill -9 xxx #杀死进程

Redis介绍的相关知识

 key健操作

 

 

#进入redis
/usr/local/bin/redis-cli
#查看当前库中所有的key
keys *
#添加key
set k1 lucy
set k2 mary
set k3 jack
#判断key是否存在
exists k1
1是存在0是不存在
#查看健是什么类型
type k1
#删除key
del k3
unlink k3 #异步删除
#设置过期时间10是10秒
expire key 10
#查看还有多少秒过期,-1表示永不过期,-2表示已近过期
#切换数据库
select 3
#查看当前表还有多少key
dbsize
#清理当前库
flushdb
#清理所有库
flushall
   

  

 

 

  

 

 

上一篇:谷歌放弃TensorFlow了
下一篇:没有了
网友评论