NoSQL(1)

1、简述redis应用场景

Redis

  • 概念:Redis(Remote Dictionary Server),即远程字典服务,是用C语言开发的一个开源的高性能键值对(key-value)数据库。
  • 特征:
    1. 数据间没有必然的联系
    2. 内部采用单线程机制进行工作
    3. 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。
    4. 多数据类型支持:字符串(string)、列表(list)、散列(hash)、集合(set)、有序集合(sorted_set)。
    5. 持久化支持。Redis可以进行灾难性恢复,比如突然断电的情况。通过将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用来保证数据的可恢复。
    6. 应用场景:
      • 分布式锁。
      • 消息队列。
      • 分布式数据共享,如分布式集群架构中的session分离。
      • 时效性信息控制,如验证码控制(比如验证码五分钟之内有效)、投票控制等。
      • 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数等。
      • 任务队列,如秒杀、抢购、购票排队等。
      • 为热点数据加速查询(主要应用场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。

2、redis的优点是什么? 

1)响应快速

Redis 响应非常快,每秒可以执行大约 110 000 个写入操作,或者 81 000 个读操作,其速度远超数据库。如果存入一些常用的数据,就能有效提高系统的性能。

2)支持 6 种数据类型

它们是字符串、哈希结构、列表、集合、可排序集合和基数。比如对于字符串可以存入一些 Java 基础数据类型,哈希可以存储对象,列表可以存储 List 对象等。这使得在应用中很容易根据自己的需要选择存储的数据类型,方便开发。

对于 Redis 而言,虽然只有 6 种数据类型,但是有两大好处:一方面可以满足存储各种数据结构体的需要;另外一方面数据类型少,使得规则就少,需要的判断和逻辑就少,这样读/写的速度就更快。

3)操作都是原子的

所有 Redis 的操作都是原子的,从而确保当两个客户同时访问 Redis 服务器时,得到的是更新后的值(最新值)。在需要高并发的场合可以考虑使用 Redis 的事务,处理一些需要锁的业务。

4)MultiUtility 工具

Redis 可以在如缓存、消息传递队列中使用(Redis 支持“发布+订阅”的消息模式),在应用程序如 Web 应用程序会话、网站页面点击数等任何短暂的数据中使用。

3、使用yum在线安装redis

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum list | grep redis

[root@localhost ~]# yum install redis -y

systemctl enable --now redis 启动服务并开机自启动

redis-cli 进

exit  出


4、源码安装redis并配置服务脚本 

下载    wget -c http://download.redis.io/releases/redis-4.0.1.tar.gz

解压

安装

启动

mkdir -p /etc/redis

cp redis.conf  /etc/redis

sed -i.bak 's/daemonize no/daemonize yes/' /etc/redis/redis.conf

redis-server /etc/redis/redis.conf

登录

redis-cli

 

源码配置服务脚本:

1、创建用户和组

groupadd -g 935 -r redis

useradd -u 935 -g 935 -r -d /var/lib/redis -c 'redis server' -s /sbin/nologin redis

2、修改配置文件/etc/redis/redis.conf

3、创建服务脚本

[root@localhost ~]# vim /usr/lib/systemd/system/redis.service

[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf --supervised systemd
ExecStop=/usr/bin/kill 'pidof redis-server'
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target

 

[root@localhost ~]#  systemctl daemon-reload

测试

 

5、常用的NoSQL数据库有那些,列举不少于3个。

1. In-Memory KV Store : Redis
in memory key-value store,同时提供了更加丰富的数据结构和运算的能力,成功用法是替代memcached,通过checkpoint和commit log提供了快速的宕机恢复,同时支持replication提供读可扩展和高可用。

2. Disk-Based KV Store: Leveldb
真正基于磁盘的key-value storage, 模型单一简单,数据量不受限于内存大小,数据落盘高可靠,Google的几位大神出品的精品,LSM模型天然写优化,顺序写盘的方式对于新硬件ssd再适合不过了,不足是仅提供了一个库,需要自己封装server端。

3. Document Store: Mongodb
分布式nosql,具备了区别mysql的最大亮点:可扩展性。mongodb 最新引人的莫过于提供了sql接口,是目前nosql里最像mysql的,只是没有ACID的特性,发展很快,支持了索引等特性,上手容易,对于数据量远超内存限制的场景来说,还需要慎重。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值