一、redis系列之基础知识与centos下环境搭建

1. Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

2. Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

3.Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

4. CAP理论就是说在分布式存储系统中,最多只能实现上面的亮点,而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须要实现的。

  C:强一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值。

  A:高可用性:在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。

  P:分布式容忍性:以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

  分布式架构的时候必须做出取舍,以上三者只能同时实现两者。

  CA:传统Oracle数据库

  AP:大多数网站架构的选择

  CP:redis、Mongdb

5. BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。

  BASE其实就是下面三个术语的缩写:

  基本可用(Basically Available)

  软状态(Soft stable)

  最终一致(Eventually consistent)

  BASE的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上的改观。为什么这么说呢,原因就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须用另外一种,这里的BASE就是解决这个问题的办法。

6. reids:REmote DIctionary Server(远程字典服务器)

7. centos下安装reids:

  • 下载:wget wget http://download.redis.io/releases/redis-5.0.0.tar.gz
  • 解压
  • 然后复制到到/opt目录下
  • 进入/opt/redis-5.0.0
  • 运行:make

若是出现以下错误,则则说明未安装gcc,使用命令安装gcc:yum install gcc

安装好后继续执行make,若出现如下提示,则将make改为make MALLOC=libc,推测是因为编译库的问题。

  • 安装编译后的文件:make install,redis可执行文件将被复制到/usr/local/bin/,但没有配置,手动复制配置:cp redis.conf /myredis 目录中(需要先新建myredis目录)
  • 更改redis.conf文件中daemonize为yes 后台启动

9.启动redis:

redis-server /myredis/redis.conf

redis-cli -p -6379

10. 在centos中查看redis有没有在后台运行:ps -ef|grep redis

11. 关闭redis服务:

SHUTDOWN

然后exit返回linux命令行

12. redis系统自带16个数据库,切换数据库用角标:0-15

13. 切换数据库:select + 角标

例:切换到7号数据库:select 6

14. 查看当前数据库所有数据:keys *。相当于关系型数据库的select * 。

15. 查看当前数据库数据量:DBSIZE

16. 清空当前数据库:FLUSHDB

清空所有数据库:FLUSHALL

17.redis的五大数据类型:

  • String(字符串)
  • Hash(哈希,类似于Java中的Map)
  • List(列表)
  • Set(集合)
  • Zset(sorted set:有序集合)

18. string是最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。

string类型是一个二进制安全类型,意思是redis的string可以包含任何数据,比如jpg图片或者序列话的对象

string类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M。

19. redis中Hash(哈希)是一个键值对集合。

redis中hash是string类型的field和value的映射表,hash特别适合与存储对象。

20. list(列表):redis列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素在列表的头部(左边)或者尾部(右边)。它的底层实际是一个链表。

21. set(集合):string类型的无序集合不允许元素重复,,通过hashTable实现的。

22. zset(有序集合):zset和set一样也是string类型元素集合,都不允许元素重复,不懂的是zset每个元素都会关联一个都变了类型的分数,扔地上真是通过分数来为集合中的每个成员进行从小到大的排序,zset成员中每一个元素都是唯一的,但是分数(score)是可重复的。

原文地址:https://www.cnblogs.com/chenhuabin/p/10017457.html

时间: 2024-11-07 15:23:51

一、redis系列之基础知识与centos下环境搭建的相关文章

.net中的并行编程系列-1.基础知识

最近半年一直研究用.net进行并行程序的开发与设计,再研究的过程中颇有收获,所以画了一个图总结了一下并行编程的基础知识点,这些知识点是并行编程的基础,有助于我们编程高性能的程序,里面的某些结构实现机制也蕴含着丰富的软件设计思想,在后续的文章中我会对图里面提到某些数据结构或同步机制的源码进行分析. 注:虽然使用的平台是.net ,但大部分知识点和平台以及语言无关,相关数据结构其他相关平台都有实现,包括优化手段都非常相似. .net中的并行编程系列-1.基础知识,布布扣,bubuko.com

CentOs Server环境搭建

CentOs Server环境搭建 标签(空格分隔): 环境搭建 centos 引言:本文档是在全新的CentOs系统搭建JAVA工程相关的服务器环境的指导文档,阅读本文档请使用markdown阅读器,或者在IDE开发工具中安装markdown插件 步骤索引: 1.安装JDK 2.安装Tomcat 3.安装Nginx 4.安装mysql 5.安装redis 正文 安装JDK 检查CentOs是否默认安装了openjdk软件,可以使用以下命令中的任意命令,最好都试一下: #rpm -qa |gre

phonegap 开发指南系列(3) ----在Eclipse中Android开发环境搭建

  前提条件:已在Eclipse中安装好Android SDK 和 ADT. 1.下载PhoneGap,解压. 2.用Eclipse新建一个安卓项目. 3.将phoneGap解压包里的Android文件夹下的phonegap-1.0.0.js 复制到安卓项目的 /assets/www/ 目录下. 4.将phoneGap解压包里的Android文件夹下的phonegap-1.0.0.jar 复制到安卓项目的 /libs 目录下. 5.在/assets/www/目录下新建一个index.html,内

[java基础学习笔记]Java8SE开发环境搭建、第一个Java Hello World、Java程序的编译与执行

本文作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/25745945 主要内容: ---------------------------------------------------| 1.JDK的下载与安装                            | 2.编写第一个java程序HelloWorld     | 3.编译执行HelloWorld                      

我的全栈之路-Go语言基础之Go语言开发环境搭建

我的全栈之路-Go语言基础之Go语言开发环境搭建 我的全栈之路 2.1 Go语言编译器下载 在开发Go语言的程序之前,首先去官网 golang.google.cn下载Go语言的编译器,编译器的作用就是将开发人员使用Go语言针对Go编译器编写的Go程序编译成对应平台的机器指令.因为计算机无法识别开发人员编写的程序,需要借助Go编译器来将源程序编译成计算机识别的二进制机器指令. golang官网提供了Windows,Linux,macOS版本的Go语言编译下载 当点击Download Go后,会跳转

[Solution] 单元测试系列(1) 基础知识

单元测试不是软件开发的新概念,在1970年就一直存在,屡屡被证明是最理想的方法之一. 本系列将分成3节: 单元测试基础知识 打破依赖,使用模拟对象,桩对象,模拟框架 创建优秀的单元测试 本节索引: 单元测试与集成测试 测试驱动开发 UnitTest和NUnit 第一个单元测试 命名规范 单元测试与集成测试 单元测试几乎总是基于框架来写的,因为框架可以为我们提供统一的API来管理测试. 常用的框架有Unit Test(MS Test),NUnit(开源) 定义 单元测试是一段代码调用另一段代码,随

lua绑定C++对象系列一——基础知识

本文主要介绍lua绑定C++对象的原理和方法,并能在C/C++定义类和方法,在lua中创建C++类的句柄实例,像面向对象一样去使用C++类实例.为了便于大家理解,系列文章会从基础知识讲解,并通过多个版本的进化,一步步完成从基础到多版本实践的完美结合和深入,彻底理解lua绑定C++对象的原理方法.在阅读本系列文章前,需要具备一定的lua开发经验以及lua与C/C++相互调用操作的知识. 1.基础C/C++和Lua的相互引用调用 我们知道C和lua相互调用,是通过虚拟栈进行数据传递通信的,基础介绍介

centos下如何搭建pptp service(vpn)

其实这些东西应该一弄完就写就比较清楚了,都弄完好久了再写,可能有些地方没写到,希望看到的童鞋帮忙补充,我再更新,有错误请批评指正. 一.Why? 我们可能很多人都喜欢用一些免费的vpn,那样起码随用随有,但是免费的终究是免费的,不会太稳定,每天爬梯子都得重新找梯子,不费劲么,所以们还不如造一个属于自己的梯子,那多稳定,可能贷款没那么大,但是终究没人和你抢有木有. 二.Where? 说道搭建,那咱们首先得有一个自己VPS(Virtual Private Server 虚拟专用服务器),这样才能搭建

opengl基础学习专题 (一 )编程环境搭建

题外话: 第一次在博客园上同大家分享博文.水的的地方,错别字的地方.环境交流.批评.知道了马上改. 以前在百度空间中写技术分享博文,后来百度啥也没说就把整个空间封了.当时感觉 还是有点寒心.只想黑一下它,厂长老了.场子也该换了. 对于想写个oepngl基础学习的专题,主要是网上资源有点老,好多都运行不了,买了红宝书<<OpenGL 编程指南 第8版>>,看了还看,觉得有点专业,优化和技术核心讲的的多. 而且都是代码片段,像自己这种门外汉学习起来还是觉得基础不行.需要恶补一下关于 f