什么是Redis

什么是NoSQL

介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL

属于非关系型数据库;Redis就属于非关系型数据库

传统的Mysql ,oracle ,sql server 等 都是关系型数据库

为什么需要NoSQL,主要应对以下问题,传统关系型数据库力不从心

  • High performance -高并发读写
  • Huge Storage-海量数据的高效率存储和访问
  • High Scalablility && High Availability 高可扩展性和高可用性

NoSQL的特点

易扩展

灵活的数据模型

大数据量,高性能

高可用

高性能键值对数据库,支持的键值数据类型

  • 字符串类型
  • 列表类型
  • 有序集合类型
  • 散列类型
  • 集合类型

Redis的应用场景

  • 缓存
  • 任务队列
  • 网站访问统计
  • 数据过期处理
  • 应用排行榜
  • 分布式集群架构中的session分离

安装Redis

第一步:安装gcc

gcc是用来编译c语言的,因为redis源码是c写的,所以需要gcc

yum install gcc-c++

第二步:wget方式,下载redis压缩包,并解压以及编译

下载:

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

解压:

tar -zxvf redis-3.2.9.tar.gz

进入解压后的目录:

make

第三步:安装redis

make PREFIX=/usr/local/redis install

安装到/usr/local/redis

回到解压目录,

cp redis.conf /usr/local/redis/

第四步:启动和关闭redis服务

启动:redis里的redis-server命令

结束:Ctrl + C

或者:./bin/redis-cli shutdown

验证:ps -ef | grep -i redis

后台启动

编辑redis.conf文件



把no改成yes

使用指定配置文件启动:

 ./bin/redis-server ./redis.conf

Redis的基本使用

./bin/redis-cli,进入客户端

字符串类型

  • 存储:set key value
  • 获取:get key
    • 无值返回nil
  • 删除:del key

哈希类型 hash:

  • 存储:hset key field value
  • 获取:
    • 获取指定field:hget key field
    • 获取全部field:hgetall key
  • 删除:hdel key field

列表类型:可以添加一个元素到列表的头部或者尾部

  • 存储:

    • 将元素添加到列表左边:lpush key value1, value2, ......
    • 将元素添加到列表右边:rpush key value1, value2, ......

      获取:
  • 范围获取:lrange key start end(获取所有可以写start是0,end是-1)

    删除:
  • lpop:从左边弹出一个元素(删除最左边元素并返回)
  • rpop:从右边弹出一个元素

集合类型:

存储:sadd key value

获取:smembers key:获取set集合中所有元素

删除:srem key value:删除set集合中的某个元素

有序集合类型

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复

集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。

  • 存储:zadd key score value
  • 获取:
    • 获取所有:zrange key start end
  • 删除:zrem key value

通用命令:

  • 查询所有的键:keys * (*处其实可以添加正则表达式)
  • 获得value类型:type key
  • 删除指定key的value:del key

redis安装与基本使用的更多相关文章

  1. Redis安装测试(待完善)

    1 Redis安装 在网址http://redis.io/下载redis-3.2.3.tar.gz,解压. 进入解压目录 编译和安装,具体配置项可参考自带的README.md文件 make test ...

  2. Redis安装及实现session共享

    一.Redis介绍 1.redis是key-value的存储系统,属于非关系型数据库 2.特点:支持数据持久化,可以让数据在内存中保存到磁盘里(memcached:数据存在内存里,如果服务重启,数据会 ...

  3. windows 环境下的redis安装

    Redis安装 1.由于是练习,所以就在windows下安装的环境,并没有在LINUX服务器上装,但是知识点是一样的 安装流程: a.下载地址:https://github.com/MSOpenTec ...

  4. CentOS7— Redis安装(转和延续)

    Part I. Redis安装(转载部分) 一.安装 wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.t ...

  5. php redis 安装篇(windows 7)

    人人都说redis比memcached好,但是没有实际体验过,概念还是比较模糊,今天就先把redis安装好,后面的体验再分享,由于php已经有了很好的扩展库支持,所以redis安装非常方便,下面是wi ...

  6. linux下的redis安装以及php添加redis扩展

    一.redis的安装 win版本详见: 下面是linux版本的安装步骤: step1.下载 http://redis.io/download下载完后直接make然后make install,注意sud ...

  7. CentOS 6.6下Redis安装配置记录

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/120.html?1455855209 在先前的文章中介绍过redis,以下 ...

  8. Redis安装配置与Jedis访问数据库

    一.NOSQL概要 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库.NoSQL数据库的四大分类 键值(Key-Value)存储数据库 这一类数据 ...

  9. Redis总结(一)Redis安装

    最近项目中需要使用Redis,刚好这两天有时间,便总结记录一下Redis的安装,以及如何在.NET中使用Redis. Redis是一个用的比较广泛的Key/Value的内存数据库.目前新浪微博.Git ...

  10. Redis-cluster集群【第一篇】:redis安装及redis数据类型

    Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...

随机推荐

  1. yum装包报错

    [root@iZ6wefn2kl6064uuaxuwetZ ~]# yum –y install  gcc  pcre-devel zlib-devel openssl-develLoaded plu ...

  2. 数据预处理 | 使用 OneHotEncoder 及 get_dummuies 将分类型数据转变成哑变量矩阵

    [分类数据的处理] 问题: 在数据建模过程中,很多算法或算法实现包无法直接处理非数值型的变量,如 KMeans 算法基于距离的相似度计算,而字符串则无法直接计算距离 如: 性别中的男和女 [0,1] ...

  3. Mapped Statements collection does not contain value for xxx

    这是我第二次遇到的这个问题了,总结下. 第一次的问题是 mybatis的sqlSessionFactory的mapperLocations,配置的是这个路径下的所有映射文件,但是我没写的没有在该路径下 ...

  4. 微信小程序配置合法域名和业务域名

    在微信小程序的开发过程中,当需要请求第三方网站数据时,都是直接调用wx.request接口的: xxxx:function(){ wx.request({ url: 'xxxxxxxxxx', dat ...

  5. Python之路Day08

    文件操作 open() -- 打开 open通过Python控制操作系统打开文件 f=open('文件路径',mode='r',encoding='utf-8') mode -- 不写就默认是r f ...

  6. C++——指针1

    7.关于内存地址 内存空间的访问方式:通过变量名访问,通过地址访问: 地址运算符:& 如:int var; 则&var表示变量var的内存起始地址: //& 出现在声明语句中出 ...

  7. Java 面向对象编程 抽象类 抽象方法 abstract

    抽象类 通过abstract定义的方法是抽象方法,它只有定义,没有实现.抽象方法定义了子类必须实现的接口规范: 定义了抽象方法的class必须被定义为抽象类,从抽象类继承的子类必须实现抽象方法: 如果 ...

  8. Exception in thread "http-apr-8080-exec-1" java.lang.StackOverflowError

    Exception in thread "http-apr-8080-exec-1" java.lang.StackOverflowError 可能执行了递归,陷入了死循环 如下我 ...

  9. RESTful 【个人理解总结】

    RESTful 个人理解总结 一.什么是  RESTful 面向资源 简单的说:RESTful是一种架构的规范与约束.原则,符合这种规范的架构就是RESTful架构. 先看REST是什么意思,英文Re ...

  10. 最新python面试题

    1.一行代码实现1--100之和 利用sum()函数求和 2.如何在一个函数内部修改全局变量 利用global 修改全局变量 3.列出5个python标准库 os:提供了不少与操作系统相关联的函数 s ...