redis简介及部署

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

简介



  • Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API


  • redis的出现时间并不长,是NoSQL中的一种,基于键-值型的存储,与memcache类似,但是memcache中只是内存的缓存,而redis不仅是内存中的缓存,还提供持久存储。



redis 的优势


1、性能极高 -- SQL语句的读写量: 读取速度 11W/s,写的速度8.1W/s
2、数据类型
3、原子性,所有的语句是一个整体,要么执行成功,要么失败


redis与mamcache不同之处:


数据结构:Memcache仅能支持简单的K-V形式,Redis支持的数据更多
多线程:Memcache支持多线程,Redis支持单线程,CPU利用Memcache利用率更高
持久化:Redis支持持久化,Memcache不支持持久化
分布式:Redis做主从结构,而Memcache服务器需要通过hash一致化来支撑主从结构
虚拟内存:Redis当物理内存使用完时,会将一些很久没有用的内存交换到磁盘,而Memcache采取的LUR策略,将一部分数据刷新掉


与其他key-value缓存产品的区别


image.png


Redis各种数据类型应用和实现方式


    String:数据结构是简单的K-V类型,v可以是数据,也可以是数字(常用操作:set,get,decr,incr,mget)
    set:sadd,spop,smembers,sunion,sinter
    list :lpush/rpush,lpop/rpop,lpoprpush,lrange
    hash:hset,hgetall,hget
    zset:zadd,zrank,zrange,zrem,zcard


部署



  • 部署环境


image.png


  • 下载 redis 安装包


[root@localhost ~]# wget  http://download.redis.io/releases/redis-2.8.17.tar.gz


  • 解压


[root@localhost ~]# tar zvxf redis-2.8.17.tar.gz


  • 安装好编译环境


[root@localhost ~]# yum -y install gcc c++ 


  • 编译


[root@localhost ~]# cd redis-2.8.17
[root@localhost redis-2.8.17]# ls
00-RELEASENOTES  deps       README            sentinel.conf
BUGS             INSTALL    redis.conf        src
CONTRIBUTING     Makefile   runtest           tests
COPYING          MANIFESTO  runtest-sentinel  utils
[root@localhost redis-2.8.17]# make
这里因为有makefile,所以直接make,若果make 出现一下错误,则解决办法:
[root@localhost redis-2.8.17]# make   MALLOC=libc
cd src && make all
make[1]: Entering directory `/root/redis-2.8.17/src'
    CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
 #include <jemalloc/jemalloc.h>
                               ^
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/redis-2.8.17/src'
make: *** [all] Error 2
[root@localhost redis-2.8.17]# ls
请在make后面加上MALLOC=libc,出现下一界面就ok


image.png


  • 测试下编译环境


[root@localhost ~]# cd redis-2.8.17/src/
[root@localhost src]# make test
You need tcl 8.5 or newer in order to run the Redis test
make: *** [test] Error 1
[root@localhost src]# 
解决方法:
[root@localhost src]# yum -y install tcl
接着等着编译……
\o/ All tests passed without errors!
Cleanup: may take some time... OK
这里似乎没有出错,but……=如果已近安装mysql,报错了,考虑修改一下内容:
[root@localhost redis-2.8.17]# ls
00-RELEASENOTES  COPYING  Makefile   redis.conf        sentinel.conf  utils
BUGS             deps     MANIFESTO  runtest           src
CONTRIBUTING     INSTALL  README     runtest-sentinel  tests
[root@localhost redis-2.8.17]# vi tests/integration/replication-2.tcl 
搜索after 将原有的1000 改大一点,比如:10000 即可
after 1000---------->10000


  • 启动


[root@localhost src]# ./redis-server 
[14813] 30 Oct 23:02:17.786 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
[14813] 30 Oct 23:02:17.787 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 2.8.17 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in stand alone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 14813
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               
[14813] 30 Oct 23:02:17.788 # Server started, Redis version 2.8.17
[14813] 30 Oct 23:02:17.789 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[14813] 30 Oct 23:02:17.789 * The server is now ready to accept connections on port 6379


ok!步骤到这里,安装基本就完成了


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
Kubernetes NoSQL Redis
k8s快速部署Redis单机
k8s快速部署Redis单机
|
29天前
|
存储 消息中间件 缓存
Redis 简介
10月更文挑战第14天
131 58
|
5月前
|
存储 运维 NoSQL
Redis Cluster集群模式部署
Redis Cluster集群模式部署
121 4
|
5月前
|
缓存 运维 NoSQL
Redis主从模式部署
Redis主从模式部署
65 4
|
5月前
|
运维 监控 NoSQL
Redis Sentinel哨兵模式部署
Redis Sentinel哨兵模式部署
108 2
|
14天前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
29 0
|
1月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
60 4
|
1月前
|
NoSQL Linux Shell
Redis 的安装与部署(图文)
Redis 的安装与部署(图文)
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
SQL 存储 NoSQL
Redis6入门到实战------ 一、NoSQL数据库简介
这篇文章是关于NoSQL数据库的简介,讨论了技术发展、NoSQL数据库的概念、适用场景、不适用场景,以及常见的非关系型数据库。文章还提到了Web1.0到Web2.0时代的技术演进,以及解决CPU、内存和IO压力的方法,并对比了行式存储和列式存储数据库的特点。
Redis6入门到实战------ 一、NoSQL数据库简介