Redis介绍和使用

redis工作所处位置图示

Redis介绍和使用

Redis是Remote Dictionary Server(远程数据服务)的缩写

由意大利人 antirez(Salvatore Sanfilippo)  开发的一款 内存高速缓存数据库

该软件使用C语言编写,它的数据模型为 key-value

它支持丰富的数据结构,比如 String  list  hash   set  sorted set

可持久化,保证了数据安全。

为什么使用

1)是一款数据库产品,有数据存储功能

2)高速读取数据(in-memory)

3)减轻数据库负担

4)有集合计算功能(优于普通数据库和同类别产品)

5)多种数据结构支持

 

什么场合使用

1)[Sort Set]排行榜应用,取top n操作,例如sina微博热门话题

2)[List]获得最新N个数据 或 某个分类的最新数据

3)计数器应用

4)[Set]sns(social network site)获得共同好友

5)[Set]防攻击系统(ip判断)等等

 

对比memecache

memcache   key 的value值 存储1M   不支持数据持久化(重启数据丢失)  存储数据比较单一   多核多线程

redis  key 的value值存储1G    支持数据持久化(重启之后数据会自动加载)  有多种数据格式,可以满足更多的使用需要   单核单线程

nosql   not only sql  不仅仅是sql   翻译  非关系性数据库    没有连表概念,不能够进行连表查询。  memcache和redis同属nosql 数据库。

 

redis安装

redis是一款开源产品,linux也是开源产品,redis默认支持开发平台是linux、unix等。

window下的redis,是由微软技术小组定制开发维护。

redis官方网站:https://redis.io/

windows安装

windows版本一般都滞后于redis源码版本 https://github.com/MicrosoftArchive/redis/releases

第一步:把redis文件部署到运行目录,路径不能够有中文

第二步:redis的windows启动服务安装   使用管理员cmd执行

windows下的redis服务安装

Redis介绍和使用

redis-server --service-install redis.windows-service.conf

Redis介绍和使用 

redis-server --service-uninstall

注意windows的redis,在使用存在一些不稳定下,只作为测试开发。尤其是在一些新版本中。如果出现问题,就重启redis服务,再重新连接使用即可。

 简单使用

 windows下连接redis

 redis-cli.exe

Redis介绍和使用 

操作使用 

key

key的命名规则不同于一般语言,键盘上除了空格、\n换行外其他的大部分字符都可以使用。

像“my key”和“mykey\n”这样包含空格和换行的key是不允许的。

我们在使用的时候可以自己定义一个Key的格式。

例如 object-type:id:field

Key不要太长。占内存,查询慢。

Key不要太短。像u:1000:pwd   就不如   user:1000:password  可读性好

 

Redis介绍和使用

 set 设置key  get  获取key的value

Redis介绍和使用

 Redis介绍和使用

注意:默认redis提供了16个库,一个业务使用一个库或者不同的value数据类型,存放到不同库里。 

Redis介绍和使用

select index 切换库 下表从0开始 

move name 1  移动name到库1 flushdb 删除当前库数据  flushall 删除所有库数据 

Redis介绍和使用

string

string是redis最基本的类型

redis的string可以包含任何数据。包括jpg图片或者序列化的对象。

单个value值最大上限是1G字节。

如果只用string类型,redis就可以被看作加上持久化特性的memcache

 Redis介绍和使用

 Redis介绍和使用

 

list

 

list类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。

这使得list既可以用作,也可以用作队列

队列  先进先出  一端进  一端出

栈    先进后出  同一端进出

Redis介绍和使用

Redis介绍和使用

 Redis介绍和使用

 

set

redis的set是string类型的无序集合。

set元素最大可以包含(2的32次方-1)个元素。

关于set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现sns中的好友推荐功能

 Redis介绍和使用

 

两个人的朋友圈

xiaomingFR    xiaohua  xiaohong  xiaobenben  xiaoniuniu  cat  do

tomFR        jerry     jim    rose  marry    cat  dog

Redis介绍和使用

zset

和set一样sorted set也是string类型元素的集合,

不同的是每个元素都会关联一个权。

通过权值可以有序的获取集合中的元素

 Redis介绍和使用

Redis介绍和使用 

设计需求

Top

新闻资讯点击热榜

id   score  hit

11    5    10000

22    10   5000

44    55   100

33    3    50000

Redis介绍和使用

Redis介绍和使用 

hash

hash数据类型存储的数据与mysql数据库中存储的一条记录极为相似。

key=》value

field(域) 对应value

 设计需求:

存储两条数据

Person1 name tom age 18  job php

Person2 name jim age 19  job java

Redis介绍和使用

Redis介绍和使用Redis介绍和使用