Redis的简介、特点、安装、基本配置和通用命令

Redis简介

Redis(Remote Dictionary Server),即远程字典服务。
Redis是用C语言编写的完全开源的、遵守BSD协议的、高性能的key-value数据库

redis的特点

  • 单线程,Redis是单线程的,所以Redis的所有单个操作都是原子性的。多个操作也能由事务来保证原子性(通过MULTI和EXEC这两个指令),因此在redis层面无需考虑并发所带来的影响
  • 性能极高,读110000/s,写81000/s
  • 丰富的数据类型:String、List、Hash,Set及Ordered Set
  • 支持持久化
  • 支持横向扩展
  • 丰富的特性,redis还支持publish/subscribe,通知,key过期等等特性
  • redis的单个key和value的最大大小都是512M

当redis接收到多个并发请求的时候,redis会把这多个并发请求存入一个队列中,然后按照队列的先后顺序,一个一个地执行命令。也就是redis同一时刻只执行一条命令,只有一条命令执行完了,才会继续执行下一条命令。 所以redis中的incr和decr是绝对的原子操作,绝对的线程安全。尽管redis是单线程模型的,但性能还是很高。

redis作为单线程模型为什么性能还很高?
  • 纯内存访问:数据存放在内存中,内存的响应时间是极高的!
  • 非阻塞式的I/O操作:redis采用epoll作为I/O多路复用技术的实现
  • 采用单线程自然也就避免了线程的上下文切换和锁带来的开销

关于epoll和I/O多路复用,是另外一个方向的讨论了,这里就不再深入探讨了。

Redis的安装

Linux 源码安装

下载地址:http://redis.io/download,下载最新稳定版本。

Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至9.3.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译

1、安装centos-release-scl
# sudo yum install centos-release-scl
2、安装devtoolset,注意,如果想安装7.版本的,就改成devtoolset-7-gcc,以此类推
# sudo yum install devtoolset-9-gcc*
3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本
# scl enable devtoolset-9 bash
4、查看一下gcc版本
# gcc -v

下载并安装:

# wget http://download.redis.io/releases/redis-6.0.8.tar.gz
# tar xzf redis-6.0.8.tar.gz
# cd redis-6.0.8
# make
将redis安装到指定目录
# make PREFIX=/usr/local/redis install
注意,PREFIX必须大写,且linux会自动帮我们创建/usr/local/redis目录

执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:

下面启动 redis 服务:

# cd src
# ./redis-server
注意这种方式启动 redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用下面命令启动。
# cd src
# ./redis-server ../redis.conf

redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动 redis 服务进程后,就可以使用测试客户端程序 redis-cli 和 redis 服务交互了。 比如:

# cd src
# ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

Redis基本配置及通用命令

基本配置

1.从redis解压缩包拷贝redis.conf到安装目录
redis默认不是后台运行的,可以通过修改该配置文件中daemonize 为yes,让redis在后台运行

daemonize yes

2.当redis以守护进程方式运行时,redis会把pid写入/var/run/redis_6379.pid文件中,也可以自己指定写入的位置

pidfile /var/run/redis_6379.pid

redis监听的端口 port 6379

设置redis连接密码,如果配置了连接密码,则客户端在连接redis时需要通过AUTH 命令来提供密码

requirepass foobared
# auth foobared

绑定的主机地址,目前这样的配置这意味着只有当前机器才能连接redis服务 bind 127.0.0.1 如果设置bind为0.0.0.0则表示运行任何远程机器访问当前redis服务

修改redis.conf配置文件,开启后台运行,将bind设置为0.0.0.0,然后再次启动redis服务,这次启动redis服务的时候,要指定redis配置文件的位置

注意:在运行redis-server时,需要指定配置文件

./redis-server ./redis.conf

通用命令

在linux中的命令

redis-server:启动redis服务
redis-cli:启动客户端
通过配置文件进行连接。
redis-benchmark:模拟数据读写的测试。

在redis里运行的命令

ping          # 测试是否连接成功
select 0-15   # 选择数据库(总共是16个数据库,默认是第0个)
keys *        # 查看所有键
set key value # 设置键值对,如果键已存在,会覆盖
get key       # 根据key获取value,如果key不存在就返回nil
del key       # 返回删除的个数
dbsize        # 查看当前库中键值对的数量
keys *        # 查看当前库中所有键值对的内容
keys u        # 查看当前库中所有key为u的键值对内容
keys u?       # 查看当前库中所有以u开头,且后面只跟一列的键值对内容
exists key    # 判断某个键值是否存在
move key 1    # 移动键值对到指定的数据库
ttl   key     # 显示指定的key还要过多久就过期(-1表示永不过期,-2表示已经过期)
expire key 10 # 设置指定的key,还能存活10秒
persist key   # 移除key的过期时间,key将持久保持
flushdb       # 清空当前库中的所有键值对
flushall      # 清空所有库中的所有键值对
type key      # 查看指定key的类型
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何呵呵是大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值