1、Redis介绍及安装
1.1Redis介绍
Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3.15起,Redis的开发工作由VMware主持,从2013年5月开始,Redis的开发由Pivotal赞助。
1.2 Install Redis in CentOS7
1.2.1 Install gcc
l
u
中的
是由
G
N
U
编译器能将
C
、
C
+
+
linux中的gcc是由GNU推出的一款功能强大的、性能优越的多平台编译器。gcc编译器能将C、C++语言 源程序和目标程序编译、连接成可执行文件。
linux中的gcc是由GNU推出的一款功能强大的、性能优越的多平台编译器。gcc编译器能将C、C++语言源程序和目标程序编译、连接成可执行文件。
yum install gcc-c++
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
1.2.2 下载与安装Redis
redis可以在windows和linux下安装使用,但是windows系统版本已经停更很长时间,不建议使用。
官网 https://redis.io/ 中文网 http://www.redis.cn/
注意:如果系统应用如java我们会安装到/usr/local下,如果使用户级别的应用,我们就放在opt下
tar -zxvf redis-7.0.5 .tar.gz
[root@lixp ~]# cd redis-7.0.5
[root@lixp redis-7.0.5]# ls
make #注意需要在解压后的redis文件夹中执行
这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要 调用perl或python来进行编译)。如果 在 make 过程中出现 error ,就要记下错误代码(注意不仅仅 是最后一行),然后可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址)。或者系统少了 一些依赖库等,这些需要自己仔细研究错误代码。make 的作用是开始进行源代码编译,以及一些功能 的提供,这些功能由他的 Makefile 设置文件提供相关的功能。比如 make install 一般表示进行安装, make uninstall 是卸载,不加参数就是默认的进行源代码编译。make 是 Linux 开发套件里面自动化 编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行 某些需要的程序进行编译的程序。
make install
这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步 一般需要你有 root 权限(因为要向系统写入文件)。
1、解zhi包软件 tar zxf xxxx.tgz
2、配置 cd xxxx ./configure
3、编译 make
4、安装 make install
5、卸载 make uninstall
redis-server
redis-server redis-config #后面是配置文件路径
1.2.3 配置redis
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
[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 #支持中文显示
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 ,需要我们注释掉这个地址才能支持远程访问。
1.4 redis入门
1.4.1关于redis线程问题
Redis 的数据结构并不全是简单的 Key-Value,还有 list,hash 等复杂的结构。这些结构有可能会进行很细 粒度的操作,比如在很长的列表后面添加一个元素,在 hash 当中添加或者删除一个对象。这些操作可能就 需要加非常多的锁,导致的结果是同步开销大大增加。 总之,在单线程的情况下,代码更清晰,处理逻辑更简单,不用去考虑各种锁的问题,不存在加锁释放锁操 作,没有因为可能出现死锁而导致的性能消耗,不存在多进程或者多线程导致的切换而消耗 CPU。 单线程多进程的集群方案 单线程的威力实际上非常强大,每核效率也非常高。多线程自然是可以比单线程有更高的性能上限,但是在 今天的计算环境中,即使是单机多线程的上限也往往不能满足需要了,需要进一步摸索的是多服务器集群化 的方案,这些方案中多线程的技术照样是用不上的。所以单线程、多进程的集群不失为一个时髦的解决方 案。 CPU 消耗 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU。 但是如果 CPU 成为 Redis 瓶颈,或者不想让服务器其他 CPU 核闲置,那怎么办? 可以考虑多起几个 Redis 进程,Redis 是 key–value 数据库,不是关系数据库,数据之间没有约束。只要客户端分清哪些 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>
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>
type 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
EXISTS key
原文地址:https://blog.csdn.net/weixin_52859229/article/details/129757611
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_42538.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!