Redis简介与安装

1. Redis简介

Redis 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

2. Redis作者

redis的作者,他叫Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。

3. NoSQL介绍

  NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

4. NoSQL数据库的四大分类

键值(Key-Value)存储数据库

         这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
列存储数据库
        这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.
文档型数据库
       文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
图形(Graph)数据库
        图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J, InfoGrid, Infinite Graph.

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

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

5. Redis特点

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持的类型 String, List, Hash, Set 及 Ordered Set 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis是一个简单的,高效的,分布式的,基于内存的缓存工具。 
架设好服务器后,通过网络连接(类似数据库),提供Key-Value式缓存服务。

简单,是Redis突出的特色。 
简单可以保证核心功能的稳定和优异。

6. Redis安装

下载网址:

http://www.redis.cn/

http://redis.io/

安装过程:

1.redis-5.0.7.tar.gz安装包传到/opt/

2.tar -zxvf redis-5.0.7.tar.gz,进入redis-5.0.7目录

3.安装gcc  命令: yum install gcc-c++(确定root登录,并且可以连网)

4.执行make distclean

5.执行make

6.执行make install

配置过程:

将解压目录中的redis.conf (/opt/redis-5.0.7)复制到安装目录/usr/local/bin/  便于操作,也便于备份.

修改配置文件redis.conf

daemonize no  修改为 daemonize yes

bind 127.0.01  注释掉

requirepass 设置密码

启动关闭过程:

启动redis:在bin目录下执行 ./redis-server ./redis.conf

连接redis命令:bin目录下执行 ./redis-cli –h IP地址 –p 端口 -a 密码

因为在本机直接./redis-cli -a sqdaben 检查是否成功,输入ping,返回值pong

退出redis客户端:ctrl+c

关闭redis:

第一种关闭方式:(断电、非正常关闭。容易数据丢失)

查询PID   ps -ef | grep -i redis

kill -9 PID

第二种关闭方式(正常关闭、数据保存)

./bin/redis-cli shutdown     关闭redis服务,通过客户端进行shutdown

如果redis设置了密码,需要先在客户端通过密码登录,再进行shutdown即可关闭服务端

操作命令:

更多的命令查询:http://redisdoc.com/

1.string类型

赋值语法:

 SET KEY_NAME   VALUE

Redis SET 命令用于设置给定 key 的值。如果 key 已经存储值, SET 就覆写旧值,且无视类型

SETNX key value  //解决分布式锁 方案之一

只有在 key 不存在时设置 key 的值。Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值

MSET key value [key value ...]

同时设置一个或多个 key-value 对

取值语法:

GET KEY_NAME

Redis GET命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。

GETRANGE key start end

用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)

GETBIT key offset

对 key 所储存的字符串值,获取指定偏移量上的位(bit)

MGET key1 [key2..]

获取所有(一个或多个)给定 key 的值

GETSET语法:  GETSET  KEY_NAME  VALUE

Getset 命令用于设置指定 key 的值,并返回 key 的旧值,当 key 不存在时,返回 nil

STRLEN key

返回 key 所储存的字符串值的长度

删除语法:

DEL KEY_Name

删除指定的KEY,如果存在,返回值数字类型。

自增/自减:

INCR KEY_Name

Incr 命令将 key 中储存的数字值增1。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作

自增:INCRBY KEY_Name 增量值 

Incrby 命令将 key 中储存的数字加上指定的增量值

自减:DECR KEY_NAME       或    DECYBY KEY_NAME 减值 

decR 命令将 key 中储存的数字减1

字符串拼接:APPEND  KEY_NAME VALUE

Append 命令用于为指定的 key 追加至未尾,如果不存在,为其赋值

2.hash类型

赋值语法:

HSET KEY  FIELD  VALUE    //为指定的KEY,设定FILD/VALUE

HMSET  KEY  FIELD VALUE [FIELD1,VALUE1]…… 同时将多个 field-value (域-值)对设置到哈希表 key 中。

取值语法:

HGET KEY FIELD   //获取存储在HASH中的值,根据FIELD得到VALUE

HMGET key field[field1]      //获取key所有给定字段的值

HGETALL key                 //返回HASH表中所有的字段和值

HKEYS key   //获取所有哈希表中的字段

HLEN key   //获取哈希表中字段的数量

删除语法: 

HDEL KEY field1[field2]    //删除一个或多个HASH表字段

其它语法:

HSETNX key field value

只有在字段 field 不存在时,设置哈希表字段的值

HINCRBY key field increment

为哈希表 key 中的指定字段的整数值加上增量 increment 。

HINCRBYFLOAT key field increment

为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

HEXISTS key field  //查看哈希表 key 中,指定的字段是否存在

3.List类型

赋值语法:

LPUSH key value1 [value2]  //将一个或多个值插入到列表头部(从左侧添加)

RPUSH key value1 [value2]  //在列表中添加一个或多个值(从右侧添加)

LPUSHX key value   //将一个值插入到已存在的列表头部。如果列表不在,操作无效

RPUSHX key value   //一个值插入已存在的列表尾部(最右边)。如果列表不在,操作无效。

取值语法:

LLEN key      //获取列表长度

LINDEX key index   //通过索引获取列表中的元素

LRANGE key start stop  //获取列表指定范围内的元素

描述: 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

删除语法:

LPOP key  移出并获取列表的第一个元素(从左侧删除)

RPOP key  移除列表的最后一个元素,返回值为移除的元素(从右侧删除)

4.set类型

赋值语法: 

SADD key member1 [member2] 向集合添加一个或多个成员

取值语法:

SCARD key 获取集合的成员数

SMEMBERS key  返回集合中的所有成员

SISMEMBER key member  判断 member 元素是否是集合 key 的成员(开发中:验证是否存在判断)

SRANDMEMBER key [count] 返回集合中一个或多个随机数

删除语法:  

SREM key member1 [member2] 移除集合中一个或多个成员

SPOP key [count]  移除并返回集合中的一个随机元素

SMOVE source destination member

将 member 元素从 source 集合移动到 destination 集合

补充:默认16个数据库,类似数组下表从0开始

统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上

select命令切换

dbsize查看当前数据库的key的数量

flushdb清空当前库

flushall通杀全部库

原文地址:https://www.cnblogs.com/yingjiyu/p/12190121.html

时间: 2024-08-01 14:59:14

Redis简介与安装的相关文章

redis简介及安装

1 redis简介及安装 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. 首先需要了解,Redis的一些数据结构,包括 lists, sets, ordered sets 以及 hashes . Redis常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(strings)类型,同时它还包括哈希(hashes).列表(

redis简介、安装、配置和数据类型

redis简介.安装.配置和数据类型 redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数据类型. 内置复制.Lua脚本.LRU收回.事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区. Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redi

001.Redis简介及安装

原文:001.Redis简介及安装 一 Redis简介 1.1 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key-value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储. Redis支持数据的备份,即master-sla

Redis简介、安装和基础入门

-------------------------------------------------------- 主要内容包括: 1.Redis简介 2.Reds安装.启动.停止 -------------------------------------------------------- 1.Redis简介 Remote Dictionary Server是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI C语言编写.遵守BSD

Redis简介、安装、配置学习笔记

前一篇文章有介绍关系型数据库和非关系型数据库的差异,现在就来学习一下用的较广的非关系型数据库:Redis数据库 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

第一课作业——Redis简介及安装部署

第一课时作业 静哥 by 2016.2.1~2016.2.22   [作业描述] 1.总结redis应用场景和优点 2.安装redis,以服务方式进行安装部署 [作业一:总结redis应用场景和优点] 1. redis应用场景: (1) 符合复杂数据结构和业务的场景,例如:商品的实时价格.库存和订单业务.微博评论.消息队列等: (2) 对宕机时间有要求的,需要利用redis的持久化机制,在宕机后快速恢复数据的业务,例如登录缓存的应用: 2. redis的优点: (1) 开源的.分布式缓存数据库,

Redis简介和安装

Redis介绍 Redis是一种Key-Value存储系统(数据库),其提供了一组丰富的数据结构,如List,Sets,Hashes和Ordered Sets Redis安装 wget <Redis下载地址>Redis下载地址百度即可,这里下载redis-2.8.9版本. tar -xzvf redis-2.8.9.tar.gz解压刚刚的压缩包 cd redis-2.8.9进入刚刚解压得到的目录 make编译 make test测试安装是否正确 后续步骤(可选做) 将可执行文件放置在$PATH

redis简介以及安装配置

Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品. Redis采用内存(In-Memory)数据集(DataSet) . 支持多种数据类型. 运行于大多数POSIX系统,如Linux.*BSD.OS X等. 1. 软件获取和帮助 Redis.io Download/redis.io Redisdoc.com redis.cn 2.功能特性 高速读写 数据类型丰富 支持持久化 多种内存分配及回收策略 支持事务 消息队列.消息订阅

分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装

redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssdb,mongodb等.既可以把redis理解为理解为缓存技术,因为它的数据都是缓存在内从中的:也可以理解为数据库,因为redis可以周期性的将数据写入磁盘或者把操作追加到记录文件中.而我个人更倾向理解为缓存技术,因为当今互联网应用业务复杂.高并发.大数据的特性,正是各种缓存技术引入最终目的. 关于r