redis-1

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis-1

一、数据库分类 ***

数据库模型:

   网状:第一代模型,实现太难,基本上没有成体数据库

   层次:第二代模型,可以实现,ibm

   关系:第三代模型,当前传统主流,oracle、ibm db2、sql server、mysql、postgresql(greenplum)

   非关系:

           文档:mongodb

           键值对:redis

           存储引擎:elasticsearch

         

关系和非关系数据库的区别:

   关系型: 安全、速度稍慢            

   非关系型:速度快,安全性稍差

二、Redis重要特性

1.速度快

 c语言写的

 代码优雅

 单线程架构,并发能力稍差,但可以用集群弥补                      

2.支持多种数据结构

 字符串,哈希,列表,集合,有序集合

3.丰富的功能

 天然计数器

 健过期功能

 消息队列

4.支持客户端语言多

 php,java,python

5.数据持久化(memcache 无法持久化)

 所有的数据都运行在内存中

 支持2种格式持久化数据AOF RDB AOF&RDB

6.自带多种高可用架构

 主从

 哨兵

 集群



 

三、redis应用场景


1.缓存-键过期时间

 把session会话存在redis,过期删除

 缓存用户信息,缓存Mysql部分数据,用户先访问redis,redis没有再访问mysql

 商城优惠卷过期时间

2.排行榜-列表&有序集合

 热度/点击数排行榜

 直播间礼物积分排行

3.计数器-天然支持计数器

 帖子浏览数

 视频播放数

 评论数

 点赞/踩

4.社交网络-集合

 粉丝

 共同好友

 兴趣爱好

 标签

5.消息队列-发布订阅

 配合ELK缓存收集来的日志


###########################################################################################

安装redis

1. 准备安装和数据目录

   mkdir -p /data/soft

   mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}


2.下载redis安装包

   cd /data/soft

   wget http://download.redis.io/releases/redis-5.0.7.tar.gz


3.解压redis到/opt/redis_cluster/

   tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/

   ln -s /opt/redis_cluster/redis-5.0.7  /opt/redis_cluster/redis

 

4.切换目录安装redis

   cd /opt/redis_cluster/redis

   make && make install

 

5.编写配置文件

vim /opt/redis_cluster/redis_6379/conf/6379.conf

添加:

bind 127.0.0.1 192.168.8.10

port 6379

daemonize yes

pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid

logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log

databases 16

dbfilename redis.rdb

dir /opt/redis_cluster/redis_6379

保存退出


6.启动当前redis服务

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf


7.关闭redis服务

redis-cli shutdown


8.登录redis

redis-cli  #本机登录

redis-cli -h 192.168.8.10 -p 6379    #其他主机登录



#####################################################################

redis基本操作命令

1.全局命令

   KEYS *  #列出所有键值名,但在企业环境禁止使用

   DBSIZE  #查看有多少键值数

   EXISTS    #查看键值是否存在

   EXPIRE k2 20    #设置K2过期时间为20秒,20秒后k2自动取消

   PERSIST k2        #取消k2的过期时间

   TTL k2    #查看k2的生命周期

   TYPE    #查看数据类型


2.字符串类型:string

   SET    k3 3        #创建键值

   GET    k3            #查看键值

   DEL    k2            #删除键值

   INCR k3            #键值k3为整数,递增加1

   INCRBY k3 10      #递增k3的量值10

   MSET k4 v4 k5 v5 k6 v6 k7 v7      #批量创建键值

   MGET k4 k5 k6 k7                #批量查看键值

 


3.列表:list

   RPUSH list1 1 2 3 4  #创建列表list1,值为1 2 3 4

   RPUSH list1 5 6 7 8     #在list1右侧添加5 6 7 8

   LPUSH list1 0          #在list1左侧添加0

   LRANGE list1 0  -1   #查看list1所有值

   RPOP list1             #删除右侧最后一个值

   LPOP list1             #删除左侧第一个值

   LTRIM list1 0 2         #仅保留前3位,其他值删除

 

4.哈希:hash

   HMSET user:1000 username zhangsan age 17 job it  #创建hash键值user:1000

   HGET user:1000 username                #查看键值中username参数

   HGET user:1000 age                #查看键值中age参数

   HGET user:1000 job                 #查看键值中job参数

   HMSET user:1000 tel 18866668888             #添加值tel


5.集合:set

   SADD set1 1 2 3        #创建集合set1

   SMEMBERS set1        #查看集合set1

   SADD set1 1 4        #为集合set1添加值1 4 ,但集合特性是去除重复,所以1无法再添加

   SREM set1 1 4        #删除集合的值1 4

   sadd set2 1 4 5        #创建第二个集合set2

   SDIFF set1 set2        #求差集

   SINTER set1 set2    #求交集

   SUNION set1 set2    #求并集


############################################################################

1.redis持久化: *****

   RDB:生成时间点快照,保存于硬盘

       优点:速度快,适合做备份,能做主从复制,单开子进程进行rdb操作不影响主业务

       缺点:会有部分数据丢失

     

   AOF:记录所有写操作命令,通过再次执行这些命令还原数据

       优点:最大程度保证数据不丢失

       缺点:日志记录量太大

     

2.RDB配置:

redis-cli    登录redis

bgsave        rdb保存命令


vim /opt/redis_cluster/redis_6379/conf/6379.conf    

添加:

save 900 1           #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。

save 300 10          #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。

save 60 10000        #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照



3.AOF配置

vim /opt/redis_cluster/redis_6379/conf/6379.conf

添加:

appendonly yes            #启用AOF持久化

appendfilename "redis.aof"    #指定AOF文件名

appendfsync everysec        #每秒同步一次


4.重启redis

redis-cli shutdown

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf


######################################################################################

环境:

   主服务器:192.168.8.10

   从服务器:192.168.8.20

1.redis主从复制

   为解决单点故障把数据复制到一个或多个副本副本服务器(从服务器),实现故障恢复和负载均衡

 

2.开启第二台服务器,安装redis

(1)把第一台服务器的redis安装目录,scp到第二台服务器上

   scp -rp /opt/redis_cluster/ root@192.168.8.20:/opt

(2)在第二台服务器上,make install安装redis

   cd /opt/redis_cluster/redis

   make install

   vim /opt/redis_cluster/redis_6379/conf/6379.conf

   修改:

   bind 127.0.0.1 192.168.8.20

   slaveof 192.168.8.10 6379

   保存退出

(3)启动服务

   redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

(4)主服务器上新建键值,测试从服务器自动同步


(5)从服务器在同步过程中,只能复制主数据库的数据,不能手动添加修改数据;

   如果从服务器非要修改数据,需要断开同步:

   redis-cli slaveof no one  


相关文章
|
9月前
|
JavaScript 前端开发 中间件
在 Pinia 中如何使用中间件进行日志记录?
在 Pinia 中如何使用中间件进行日志记录?
217 64
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
这个模型让AI角色会说话还会演!MoCha:Meta联手滑铁卢大学打造对话角色视频生成黑科技
MoCha是由Meta与滑铁卢大学联合开发的端到端对话角色视频生成模型,通过创新的语音-视频窗口注意力机制实现精准的唇语同步和全身动作生成。
424 12
这个模型让AI角色会说话还会演!MoCha:Meta联手滑铁卢大学打造对话角色视频生成黑科技
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的注意力机制:提升模型性能的关键
在深度学习的世界里,注意力机制如同一位精明的侦探,专注于细节之中发现线索。不同于传统方法的全局视角,它通过聚焦于输入数据的关键部分来提升模型性能。本文将带你领略注意力机制的魅力,从其工作原理到在各领域的应用实例,一探究竟如何让深度学习模型更“专注”。
|
10月前
|
Linux Docker 容器
安装docker-18.06报错Error: libseccomp conflicts with docker-18.06
通过这些步骤,您可以成功在CentOS上安装Docker 18.06,并解决libseccomp的冲突问题。这些方法确保系统兼容性,并保证Docker的正常运行。
294 27
全球天气预报1天-经纬度版免费API接口教程
该接口用于获取全球任意地区的天气信息,需提供经纬度参数。支持POST和GET请求,返回包括天气、气温、气压、湿度等详细信息。详情及示例参见API文档。
|
Unix Linux
unzip 解压文件到指定目录,如何操作?
【10月更文挑战第20天】unzip 解压文件到指定目录,如何操作?
5241 2
|
弹性计算 应用服务中间件 网络安全
ECS服务器使用:SSL证书安装、配置和问题定位指南
本文简要介绍了SSL证书的生成与部署方法,包括使用OpenSSL生成自签名证书和从CA获取证书的步骤,以及在Apache和Nginx服务器上的配置方法。此外,还提供了测试证书是否生效的方法和常见问题的解决策略,帮助确保证书正确安装并解决调试过程中可能遇到的问题。
1181 0
|
Kubernetes jenkins 持续交付
Jenkins + SVN/Git + Maven + Docker + 阿里云镜像 + Kubernetes(K8S)
Jenkins + SVN/Git + Maven + Docker + 阿里云镜像 + Kubernetes(K8S)
600 0
|
存储 网络协议 网络安全
MQTTClient_create函数
MQTTClient_create函数
723 0
|
开发框架 Java Apache
Java中的类库与工具集推荐
Java中的类库与工具集推荐