redis-1

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,经济版 1GB 1个月
简介: 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  


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
存储 NoSQL 关系型数据库
【初识Redis】
【初识Redis】
30 2
|
3月前
|
存储 人工智能 NoSQL
Redis的未来
【翻译】来自redis官网对未来的规划
219 0
|
11月前
|
缓存 NoSQL 关系型数据库
redis-1
redis-1
34 0
|
NoSQL 关系型数据库 MySQL
Redis1
Redis1
61 0
|
NoSQL Redis 数据库
什么是Redis
Redis,即远程字典服务,是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型,Key-Value数据库。类似于map
55 0
|
存储 消息中间件 缓存
Redis总结(一)
Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个 value 的最大限。
116 0
|
存储 缓存 监控
Redis应用问题解决
key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。
Redis应用问题解决
|
NoSQL Redis 数据库
Redis为何这么快?(下)
为啥就Redis这么突出? 它是内存数据库,所有操作都在内存上完成,内存的访问速度本身就很快 数据结构 键值对是按一定的数据结构来组织的,操作键值对最终就是对数据结构进行增删改查操作,所以高效的数据结构是Redis快速处理数据的基础
129 0
Redis为何这么快?(下)
|
存储 缓存 移动开发
redis 系列:总结篇
Redis 是 key-value 型的 memory 缓存中间件,相信大部分程序员都在项目中使用过它。我们也可以利用 memory 来实现缓存,只是使用 redis 的话,可以将缓存功能统一到一个组件里,方便后续重用拓展。
239 0
redis 系列:总结篇