开发者社区> jiangxl~> 正文

Redis缓存数据库应用概念以及Redis基本操作(一)

简介: redis基本概念及部署redis 1.redis介绍 rediis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有string、hash、list、set、zset、geo等多种数据结构和算法组成。
+关注继续查看

redis基本概念及部署redis

1.redis介绍

rediis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同,redis中的值可以有string、hash、list、set、zset、geo等多种数据结构和算法组成。

redis会将所有的数据都放在内存中,因此redis的读写性能非常快,redis还可以将内存中的数据利用快照和日志的形式保存在硬盘上,redis还提供了键过期,发布订阅,事务,流水线等附加功能

2.redis的特点

速度快

redis所有的数据都存放在内存中

redis使用c语言实现

redis使用单线程架构

基于键值对的数据结构服务器

所谓键值对就是key/value

5种数据结构:字符串、哈希、列表、集合、有序结合

丰富的功能

提供了键过期功能,可以实现缓存

提供了发布订阅功能,可以实现消息系统

提供了pipeline功能,客户端可以将一批命令一次性传给redis,减少了网络开销

稳定简单

源码很少,3.0版本以后,只有5万行代码

使用单线程模型,使得redis服务端处理模型变得简单

不依赖操作系统中的类库

客户端支持的语言多

java、php、python、c、c++、nodejs

持久化

RDB和AOF

集群

主从复制

哨兵模式

集群

3.redis应用场景

缓存(键过期时间)

缓存可以通过键过期时间进行设置

缓存session会话

每个网站都有登陆过期时间,例如24小时不登录就会退出

缓存用户信息,找不到数据再去mysql查,查到之后再次写到redis

排行榜(列表和有序集合)

可以通过redis列表和有序集合做出排行榜功能

热度排名排行榜

发布时间排行榜

计数器应用

帖子浏览数

视频播放次数

商品浏览数

社交网络

踩/赞、粉丝、共同好友、喜好、推送、打标签

消息队列系统

可以作为一个仓库使用,当数据全部取走,仓库删除

可以配合elk实现日系收集

4.redis的部署、配置、启动、关闭

4.1.部署redis

1.创建redis部署路径
[root@redis-1 ~]# mkdir -p /data/redis_cluster/redis_6379/{conf,pid,logs,data}
[root@redis-1 ~]# tree /data/redis_cluster/
/data/redis_cluster/
└── redis_6379
    ├── conf
    ├── logs
    ├── pid
    └── data
    
2.下载redis    
[root@redis-1 ~]# mkdir /data/soft
[root@redis-1 ~]# cd /data/soft
[root@redis-1 /data/soft]# wget https://repo.huaweicloud.com/redis/redis-3.2.9.tar.gz

3.便于安装redis
[root@redis-1 /data/soft]# tar xf redis-3.2.9.tar.gz -C /data/redis_cluster/
[root@redis-1 /data/soft]# cd /data/redis_cluster/
[root@redis-1 /data/redis_cluster]# ln -s redis-3.2.9/ redis
[root@redis-1 /data/redis_cluster]# cd redis/src
[root@redis-1 /data/redis_cluster/redis]# make && make install

image

image

4.2.redis可执行文件

make install完redis的可执行命令都存放在了/usr/local/bin下

[root@redis-1 /data/redis_cluster/redis]# ll /usr/local/bin/redis-*

-rwxr-xr-x. 1 root root 2433000 1月 27 13:32 /usr/local/bin/redis-benchmark

-rwxr-xr-x. 1 root root 25128 1月 27 13:32 /usr/local/bin/redis-check-aof

-rwxr-xr-x. 1 root root 5181912 1月 27 13:32 /usr/local/bin/redis-check-rdb

-rwxr-xr-x. 1 root root 2585960 1月 27 13:32 /usr/local/bin/redis-cli

lrwxrwxrwx. 1 root root 12 1月 27 13:32 /usr/local/bin/redis-sentinel -> redis-server

-rwxr-xr-x. 1 root root 5181912 1月 27 13:32 /usr/local/bin/redis-server

4.3.使用redis官方脚本生成redis配置文件

[root@redis-1 ~]# cd /data/redis_cluster/redis/utils/
[root@redis-1 /data/redis_cluster/redis/utils]# sh install_server.sh 
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...

执行完在/etc/redis/目录下面即可看到配置文件
[root@redis-1 /data/redis_cluster/redis/utils]# ls /etc/redis/
6379.conf

4.4.配置redis并启动

一般编译安装完之后,redis目录就没什么用了,在生产环境中,都是新建一个redis目录,里面存放配置文件,直接启动就行,因为一台机器上会部署很多个redis

1.配置redis
[root@redis-1 ~]# vim /data/redis_cluster/redis_6379/conf/redis_6379.conf 
#以守护进程模式启动
daemonize yes

#绑定主机地址
bind 192.168.81.210 127.0.0.1

#监听端
port 6379

#pid和log文件所在路径
pidfile /data/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /data/redis_cluster/redis_6379/logs/redis_6379.log

#设置数据库的数量,默认为0
databases 16

#指定本地持久化文件的文件名,默认dump.rdb
dbfilename redis_6379.rdb

#本地数据库的目录,持久化文件路径
dir /data/redis_cluster/redis_6379/data


2.启动redis
[root@redis-1 ~]# redis-server /data/redis_cluster/redis_6379/conf/redis_6379.conf


3.查看进程和端口号
[root@redis-1 ~]# ps aux | grep redis
root      16597  0.1  0.4 136972  7528 ?        Ssl  13:57   0:00 /usr/local/bin/redis-server 127.0.0.1:6379

[root@redis-1 ~]# netstat -lnpt | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      16597/redis-server 

4.5.redis关闭方式

不管是关系型数据库还是缓存数据库,都不能直接kill,会导致数据文件丢失

关闭redis的方式需要在redis-cli交互模式输入shutdown即可关闭或者使用redis-cli shutdown

[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> SHUTDOWN
not connected> exit

[root@redis-1 ~]# ps aux | grep redis

第二种关闭redis的方法
[root@redis-1 ~]# redis-cli shutdown

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
杨校老师课堂之分布式数据库HBase的部署和基本操作
以下采用伪分布式方式搭建HBase 故而采用内置的Zookeeper协调处理,不再搭建外置ZooKeeper,因此会存在单点故障问题,若需要解决这个情况,可采用Zookeeper部署一个HA(高可用)的Habse集群解决。
24 0
前端培训-中级阶段(23)- Manifest ApplicationCache应用程序缓存(2019-10-31期)
前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。
21 0
mysql数据库基本操作(sql语句加注释)
mysql数据库基本操作(sql语句加注释)
39 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
20879 0
+关注
jiangxl~
华为云享专家、51CTO专家博主、DevOps运维领域优质创作者、 2021年度博客之星运维与安全领域TOP1,某厂高级运维工程师擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、大规模互联网WEB集群架构、开源软件部署维护等领域。
210
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载