Redis

1.Redis介绍与使用

1. Redis介绍

  1. 官方称单体的Redis应用能够处理 10wQPS
  2. Redis是基于key-value类型存储数据的 no(Not Only)-sql 数据库,泛指 非关系型数据库
  3. 和关系型数据库相比,非关系型数据库基本都是把数据存在内存里面的,所以速度要快得多得多,而且
    相对来说更轻量,在微服务的环境下更符合趋势
  4. Redis也支持持久化(将数据存到磁盘中),有两种持久化策略(RDB和AOF),保证数据不丢失
  5. 磁盘的响应速度,一般是毫秒级别;但是内存的响应速度是 ns 级别的
  6. 支持的数据类型多( String , Hash , List , Set , Sorted Set )
  7. 支持的语言广泛,基本上所有的编程语言都有与之对应的交互工具
  8. 从3.2版本之后,官方支持Clust和哨兵机制,能够很容易搭建分布式集群架构

2. Redis安装

2.1编译过程(省略),编译之后会产生以下几个可执行文件:

  1. redis-server:服务端
  2. redis-cli:命令行的客户端
  3. redis-check-aof:对AOF文件的检测和修复
  4. redis-check-rdb:对rdb文件的检测和修复
  5. redis-sentinel:哨兵角色启动的工具

2.2 启动redis-server的方式

直接启动

[root@localhost redis-6.2.6]# ./src/redis-server

推荐使用配置文件去启动服务端(后台)

在此之前,可能会涉及到的指令为:
cat redis.conf | grep -v '#'|grep -v '^$' >redis-simple.conf
查看redis.conf文件的内容==>过滤掉 # 的注解==>过滤掉 空格 ==>将过滤之后的结果输出到 redis-simple.conf文件中

编辑redis-simple.conf文件

[root@localhost redis-6.2.6]# vi redis-simple.conf

按i进入编辑,修改daemonize后的值为yes
esc退出,shift+: 输入wq保存并推出

启动redis-server,使用指定配置文件

[root@localhost redis-6.2.6]# ./src/redis-server ./redis-simple.conf

查看服务是否启动

验证方式:
ps -ef|grep redis
netstat -antp|grep redi
通过redis-cli去ping服务端

[root@localhost redis-6.2.6]# ps -ef | grep redis
root       6608   1618  0 19:46 pts/0    00:00:00 ./src/redis-server *:6379
root      11048   1618  0 19:59 pts/0    00:00:00 grep --color=auto redis

2.3 关闭服务端的方式:

  1. 通过linux的 kill 指令去杀死redis进程(不建议)
  2. 通过客户端调用 shutdown 指令关闭redis服务端

2.4 常用配置

  1. daemonized :是否以守护线程的方式启动
  2. port :redis服务器的端口,默认6379,生产环境为了安全,一般会修改
  3. dir :工作目录,默认为当前配置文件的目录,产生的持久化的文件和日志文件默认会产生在工作目
    录中
  4. logfile :日志文件,默认为空,代表不保留日志.
  5. bind :绑定能够访问redis服务的host,默认为本机. 0.0.0.0 代表所有host
  6. protected-mode :保护模式,默认开启,如果想让远程客户端访问的话,保护模式也要关闭
  7. databases 16 :redis默认的数据库的数量,默认是从DB0~15这16个库
  8. requirepass :访问服务端的密码,默认是没有密码

2.5 linux防火墙放行端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent 在public域中永久放行tcp协议的对6379端口上的程序的连接
firewall-cmd --reload :重新加载防火墙策略

3.Redis的指令

针对于不同的数据类型的指令

  1. 通用指令
  2. String
  3. Hash
  4. List
  5. Set
  6. Zset

3.1 通用指令

指令说明
dbsize查询当前库中的键值对的数量
set key value新增或修改string类型键值对
get key查询指定key对应的值
del key [key…]删除一个或者多个key对应的值
type key返回指定key的value的数据类型
exists key[key…]判断指定的key存在的数量
keys pattern根据规则匹配当前库中符合标准的key的列表
expire key seconds为某个key设置过期时间,单位为 秒
ttl key查询单个key的过期时间,-1代表不过期,-2代表不存在
setnx涉及到乐观锁的概念,在Redis里面非常重要,常常用作分布式项目中的分布式锁的原理,如果当前的key不存在,相当于set的新增操作,如果当前key存在,相当于不做任何操作
select index切换到指定index的redis库中
flushall删除所有库中的键值对(可以证明redis库与库之间不是完全隔离的)

keys与dbsize补充:实际工作用keys的情况很少,因为keys指令的时间复杂度为O(n),再加上redis的核心
功能是单线程的,所以生产环境的key数量很大的情况下,keys会严重耗时.
dbsize可以在生产环境中使用,因为它的时间复杂度是O(1),因为dbsize的返回值来自于redis自身维护
的一个key数量的计数器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值