1、Redis介绍安装

1.1Redis介绍

Redis(Remote Dictionary Server),即远程字典服务,是一个开源使用ANSI C语言编写支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3.15起,Redis的开发工作由VMware主持,从2013年5月开始,Redis的开发由Pivotal赞助。

Redis能做什么

  1. 内存存储持久化,断电即丢失,所以持久化很重要,Redis采用两种机制(RDB和AOF)
  2. 效率高,可以用于高速效率
  3. 发布订阅系统
  4. 地图信息分析
  5. 计数器等,网站浏览

Redis特性/特点

  1. 多样的数据类型
  2. 持久
  3. 集群
  4. 事务

1.2 Install Redis in CentOS7

1.2.1 Install gcc

l

i

n

u

x

中的

g

c

c

是由

G

N

U

推出的一款功能强大的、性能优越的多平台编译器

g

c

c

编译器能将

C

C

+

+

语言程序目标程序编译连接可执行文件

linux中的gcc是由GNU推出的一款功能强大的、性能优越的多平台编译器gcc编译器能将C、C++语言程序目标程序编译连接可执行文件

linux中的gcc是由GNU推出的一款功能强大的、性能优越的多平台编译器gcc编译器能将CC++语言程序目标程序编译连接成可执行文件

因为Redis依赖c++环境 所以我们需要安装c++

yum install gcc-c++

可以通过gccv 检查版本

gcc -v

升级版本 因为redis7.* 需要gcc版本的支持 4个分别执行

yum -y install centos-release-scl 
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils #修改使用版本
scl enable devtoolset-9 bash 
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

继续查看gcc版本 升级到9.* 完成安装

1.2.2 下载安装Redis

redis可以windowslinux安装使用,但是windows系统版本已经停更很长时间,不建议使用。

官网 https://redis.io/ 中文http://www.redis.cn/

通过工具安装文件放在opt文件夹下:

注意:如果系统应用java我们会安装到/usr/local下,如果使用户级别应用,我们就放在opt

解压文件夹

tar  -zxvf  redis-7.0.5 .tar.gz

解压进入redis文件夹查看文件:

[root@lixp ~]#   cd redis-7.0.5

[root@lixp redis-7.0.5]#  ls

编译:会将需要配置帮助我们配置完成

make #注意需要在解压后的redis文件夹执行
一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perlpython编写软件需要 调用perlpython来进行编译)。如果 在 make 过程出现 error ,就要记下错误代码(注意不仅仅 是最后一行),然后可以开发者提交 bugreport(一般在 INSTALL 里有提交地址)。或者系统少了 一些依赖库等,这些需要自己仔细研究错误代码make作用是开始进行源代码编译,以及一些功能 的提供,这些功能由他的 Makefile 设置文件提供相关的功能。比如 make install 一般表示进行安装make uninstall卸载,不加参数就是默认的进行源代码编译。make 是 Linux 开发套件里面自动化 编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化调用 gccld 以及运行 某些需要的程序进行编译的程序

安装redis

make install

这条命令来进行安装(当然有些软件需要先运行 make checkmake test来进行一些测试),这一步 一般需要你有 root 权限(因为要向系统写入文件)。

命令拓展软件安装流程

1、解zhi软件 tar zxf xxxx.tgz 

2配置 cd xxxx ./configure 

3、编译 make 

4、安装 make install 

5、卸载 make uninstall

检查redis环境服务所在的位置

启动测试

redis-server
redis-server redis-config #后面是配置文件路径

1.2.3 配置redis

安装vim编辑器

yum  -y  install vim

备份文件

redis配置文件同级目录创建一个文件夹并且cp一个redis.conf文件到新的文件夹, 以后我们使用这个cp的文件进行操作原生原件不变动

#进入redis目录
[root@lixp redis-7.0.5]# cd /opt/redis-7.0.5
#复制一份redis.conf文件,防止源文件损坏,备份
[root@lixp redis-7.0.5]# cp redis.conf ./redis0.conf 
[root@lixp redis-7.0.5]# ll

修改后台启动

vim redis-conf

重新启动redis并查看测试

[root@lixp redis-7.0.5]# redis-server /opt/redis-6.0.6/it-sunwz/redis.conf

查看进程

ps -aux | grep redis

ps -ef | grep redis

客户端连接测试

[root@lixp redis-7.0.5]#  redis-cli -h 127.0.0.1 -p 6379 

[root@lixp redis-7.0.5]#  redis-cli -h 127.0.0.1 -p 6379 --raw #支持中文显示

客户端IO测试

set name 张三

get name

keys *

退出客户端结束服务

 # 退出客户端 
  exit 
 # 结束服务方式1 客户端直接输入 
 shutdown shutdown 
 # 结束服务方式2 客户端直接输入命令 
 redis-cli shutdown

防火墙命令拓展

启动防火墙systemctl start firewalld 
关闭防火墙systemctl stop firewalld 
检查防火墙状态systemctl status firewalld 
设置开机启用防火墙systemctl enable firewalld.service 
设置开机禁用防火墙systemctl disable firewalld.service · 
关闭防火墙systemctl stop firewalld 
设置开机禁用防火墙systemctl disable firewalld.service

1.2.4 redis开关

第一种:退出客户端之后

[root@lixp redis-7.0.5]#  redis-cli shutdown

第二种:直接客户端内(建议)

127.0.0.1:6379>shutdown

1.3 redis可视化工具安装

Redis Desktop Manager(Redis可视化工具)安装及使用

默认无法连接

配置防火墙开放端口

firewall-cmd --add-port=6379/tcp --permanent

firewall-cmd --remove-port=8888/tcp --permanent

firewall-cmd --list-ports

redis服务默认保护机制机制规则默认是只允许当前安装redis服务电脑访问127.0.0.1

redis默认配置文件中有一个Ip地址 绑定就是127.0.0.1 ,需要我们注释这个地址才能支持远程访问

重新启动redis 服务


在这里插入图片描述

1.4 redis入门

1.4.1关于redis线程问题

redis的单线程的,那么单线程为什么还这么快?

Redis 的数据结构不全简单的 Key-Value,还有 listhash复杂结构。这些结构可能会进行很细 粒度的操作,比如在很长的列表后面添加一个元素,在 hash 当中添加或者删除一个对象。这些操作可能就 需要加非常多的锁,导致的结果同步开销大大增加。 总之,在单线程的情况下,代码更清晰,处理逻辑简单,不用去考虑各种锁的问题,不存在加锁释放锁操 作,没有因为可能出现死锁而导致的性能消耗,不存在多进程或者多线程导致的切换而消耗 CPU。 单线程多进程的集群方案 单线程的威力实际上非常强大,每核效率也非常高。多线程自然是可以比单线程有更高的性能上限,但是在 今天计算环境中,即使是单机多线程的上限也往往不能满足需要了,需要进一步摸索的是多服务器集群化 的方案,这些方案多线程技术照样是用不上的。所以单线程、多进程的集群不失为一个时髦的解决方 案。 CPU 消耗 采用单线程,避免了不必要的上下文切换竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU。 但是如果 CPU 成为 Redis 瓶颈,或者不想让服务器其他 CPU 核闲置,那怎么办可以考虑多起几个 Redis 进程,Redis 是 keyvalue 数据库,不是关系数据库数据之间没有约束。只要客户端分清哪些 key 放在哪个 Redis 进程上就可以了。

1.4.3 redis基础命令

数据库切换操作

127.0.0.1:6379> PING #检查连接 
PONG 
127.0.0.1:6379> SELECT 15
OK 
127.0.0.1:6379[15]> SELECT 16 #一共16个库 0-15
(error) ERR DB index is out of range 
127.0.0.1:6379[15]> SELECT 0 #默认是0 不显示索引
OK 
127.0.0.1:6379>

查看当前数据库

127.0.0.1:6379> SET student zhangsan #增加一个数
OK
127.0.0.1:6379> SET student lisi #相同key加一个数据 会覆盖
OK
127.0.0.1:6379> GET student # 取值
"lisi"
127.0.0.1:6379> KEYS * # 查看所有的key
1) "list11"
2) "student"
3) "user:1:age"
4) "user:1:name"
127.0.0.1:6379>

清除数据库中的数据

flushdb 删除当前库 – 前提进入当前数据库

flushall 删除所有库

127.0.0.1:6379> SET student zhangsan #在索引0库加信息
OK
127.0.0.1:6379> SET teacher lisi #在索引0库加信息
OK
127.0.0.1:6379> select 5 #切换索引为5的库
OK
127.0.0.1:6379[5]> SET user wangwu #在索引5库加信息
OK
127.0.0.1:6379[5]> KEYS *
1) "user"
127.0.0.1:6379[5]> FLUSHDB #清除当前库
OK
127.0.0.1:6379[5]> keys *
(empty array)
127.0.0.1:6379[5]> SELECT 0
OK
127.0.0.1:6379> KEYS *
4.2.4 设置过期时间
4.2.5 查看key类型
4.2.5 查看key是否存在
5. redis数据类型
redis存在5种基本数据类型三种特殊类型
1) "teacher"
2) "student"
127.0.0.1:6379> SELECT 5
OK
127.0.0.1:6379[5]> FLUSHALL #清空所有的库信息
OK
127.0.0.1:6379[5]> SELECT 0
OK
127.0.0.1:6379> KEYS *
(empty array)
127.0.0.1:6379>

设置过期时间

127.0.0.1:6379> set student jiazong
OK
127.0.0.1:6379> EXPIRE student 30 #设置过期 秒数
(integer) 1
127.0.0.1:6379> TTL student
(integer) 18
127.0.0.1:6379> TTL student
(integer) 16
127.0.0.1:6379> TTL student #查看过期时间
(integer) 14
127.0.0.1:6379> TTL student
(integer) 7
127.0.0.1:6379> TTL student
(integer) -2
127.0.0.1:6379> get student
(nil)
127.0.0.1:6379>

查看key类型

type key

查看key是否存在

EXISTS key

(integer) 1
127.0.0.1:6379> TTL student
(integer) 18
127.0.0.1:6379> TTL student
(integer) 16
127.0.0.1:6379> TTL student #查看过期时间
(integer) 14
127.0.0.1:6379> TTL student
(integer) 7
127.0.0.1:6379> TTL student
(integer) -2
127.0.0.1:6379> get student
(nil)
127.0.0.1:6379>


 查看key类型

```shell
type key

查看key是否存在

EXISTS key

原文地址:https://blog.csdn.net/weixin_52859229/article/details/129757611

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_42538.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注