一、Redis简介

1.关于关系型数据库和nosql数据库

关系型数据库是基于关系表的数据库,最后会将数据长久化到磁盘上,而nosql数据    
库是借助特殊的协会,并将数据存储到内部存款和储蓄器的数据库。从品质上来说,nosql数据库
要优于关系型数据库,从安全性上来讲关系型数据库要优惠nosql数据库,所以在实   
际开采中贰个种类中nosql和关系型数据库会联手行使,达到质量和安全性的双确认保障。

 

2.为何要使用Redis

 1)易扩展 
 2)大数据量进步质量 
 3)七种眼明手快的数据模型 

 

3.redis在Linux上的装置

1)安装redis编译的c环境,yum install gcc-c++

2)将redis-2.6.16.tar.gz上传到Linux系统中

3)解压到/usr/local下  tar -xvf redis-2.6.16.tar.gz -C /usr/local

4)进入redis-2.6.16目录 使用make命令编译redis

5)在redis-2.6.16目录中 使用make PREFIX=/usr/local/redis
install命令安装               redis到/usr/local/redis中

6)拷贝redis-2.6.16中的redis.conf到安装目录redis的bin中

7)运行redis 在bin下进行命令redis-server redis.conf

8)如需远程连接redis,需配置redis端口6379在linux防火墙中支付

/sbin/iptables -I INPUT -p tcp –dport 6379 -j ACCEPT

/etc/rc.d/init.d/iptables save

 图片 1

启航后看见如上应接页面,但此窗口不可能关闭,窗口关闭就认为redis也关闭了消除方案:能够透过改良配置文件
配置redis后台运营,即服务器运行了但不会创建调控台窗口

将redis.conf文件中的daemonize从no改过成yes表示后台运行

图片 2

 

利用命令查看6379端口是不是运转ps -ef | grep redis

在bin上边使用./redis-cli进入客商端

 图片 3

8)通过后台运行后怎么关闭? 

 图片 4

 

 

二、使用java去操作Redis

 图片 5

图片 6

图片 7

图片 8

图片 9

三、Redis的常用命令

redis是后生可畏种高等的key-value的蕴藏系统

中间的key是字符串类型,尽大概知足如下几点:

1)key不要太长,最棒不要操作10二十三个字节,那不唯有会损耗内存还或者会下落查找效用

2)key不要太短,假设太短会减少key的可读性

3)在品种中,key最佳有一个联结的命名规范(依据集团的必要)

里头value  协助多样数据类型:

1)字符串型 string

2)字符串列表 lists

3)字符串集合 sets

4)有序字符串集结 sorted sets

5)哈希类型 hashs

 

作者们对Redis的求学,首假如对数码的积累,下边以后学习各样Redis的数据类型的囤积操作:

 

图片 10

 

1.仓库储存字符串string

字符串类型是Redis中可是基础的数额存款和储蓄类型,它在Redis中是二进制安全的,这便表示该品种能够选拔任何格式的多寡,如JPEG图像数据或Json对象描述消息等。 
在Redis中字符串类型的Value最多可以包容的数量长度是512M

图片 11

 

1)set key
value
:设定key持有钦定的字符串value,假诺该key存在则开展覆盖操作。总是回到”OK”

2)get
key
:获取key的value。要是与该key关联的value不是String类型,redis 
将回来错误音信,因为get命令只可以用于获取String value;假设该key不设有,重返null。

图片 12

 

3)getset key value:先获得该key的值,然后在设置该key的值。

图片 13

 

4)incr
key
:将点名的key的value原子性的星罗棋布1.假如该key不设有,其开始值    
为0,在incr之后其值为1。假使value的值不可能转成整型,如hello,该操作将执  
行退步并赶回相应的错误消息。

5)decr
key
:将点名的key的value原子性的依次减少1.假若该key不设有,其初叶值   
为0,在incr之后其值为-1。尽管value的值不能够转成整型,如hello,该操作将执 
行失利并重临相应的错误音讯。

图片 14

 

6)incrby key
increment
:将点名的key的value原子性扩充increment,假若该   
key不设有,器开端值为0,在incrby之后,该值为increment。要是该值无法转成    
整型,如hello则失利并赶回错误消息

7)decrby key
decrement
:将内定的key的value原子性裁减decrement,假设   
该key空头支票,器起始值为0,在decrby之后,该值为decrement。要是该值不可能转成整型,如hello则战败并回到错误消息

图片 15

8)append key
value
:假使该key存在,则在原本的value后扩张该值;假设该 key   
不设有,则重复成立二个key/value

 图片 16

从安全性上而言关系型数据库要优于nosql数据库。 

2.存储lists类型

在Redis中,List类型是比照插入顺序排序的字符串链表。和数据结构中的普通链表相像,大家得以在其头顶(left)和尾巴(right)增多新的元素。在插入时,要是该键并不设有,Redis将为该键创制二个新的链表。与此相反,要是链表中兼有的要素均被移除,那么该键也将会被从数据库中删除。List中能够蕴含的最概况素数量是4294967295。

从安全性上而言关系型数据库要优于nosql数据库。        
从要素插入和删除的效用视角来看,借使大家是在链表的双方插入或删除成分,那将会是分外火速的操作,即便链表中早就积存了百万条记下,该操作也能够在常量时间内形成。不过要求注脚的是,假使成分插入或删除操作是效率于链表中间,那将会是老大低效的。相信对于有精良数据结构基础的开荒者来讲,那或多或少并简单通晓。

图片 17

 

1)lpush key value1
value2…
:在钦点的key所提到的list的头顶插入全体的   
values,要是该key不设有,该命令在插入的后边创造八个与该key关联的空链    
表,之后再向该链表的尾部插入数据。插入成功,再次回到成分的个数。

2)rpush key value1、value2…:在该list的尾部添日成分

3)lrange key start
end
:获取链表中从start到end的要素的值,start、end可    
为负数,若为-1则表示链表尾巴部分的成分,-2则表示尾数第三个,依次类推…

图片 18

 

从安全性上而言关系型数据库要优于nosql数据库。4)lpushx key
value
:仅当参数中钦赐的key存在时(要是与key管理的list中没    
有值时,则该key是不设有的)在钦点的key所提到的list的头顶插入value。

5)rpushx key value:在该list的尾部添美金素

图片 19

 

6)lpop
key
:重返并弹出钦点的key关联的链表中的第贰个要素,即底部成分。

7)rpop key:从尾巴部分弹出成分。

图片 20

 

8)rpoplpush resource
destination
:将链表中的尾部成分弹出并增添到底部

图片 21

 

9)从安全性上而言关系型数据库要优于nosql数据库。llen key:重回内定的key关联的链表中的元素的数码。

图片 22

 

10)lset key index
value
:设置链表中的index的脚标的因素值,0代表链表的头元 
素,-1象征链表的尾元素。

 图片 23

从安全性上而言关系型数据库要优于nosql数据库。 

11)lrem key count
value
:删除count个值为value的因素,倘使count大于0,从头向尾遍历并剔除count个值为value的要素,借使count小于0,则从尾向头遍历并剔除。假如count等于0,则删除链表中兼有等于value的因素。

图片 24

 

12)linsert key before|after pivot
value
:在pivot成分前照旧后插入value那些成分。

 图片 25

 

3.存储sets类型

在Redis中,大家能够将Set类型看作为未有排序的字符集结,和List类型同样,大家也得以在该项指标数据值上施行增添、删除或决断某一成分是还是不是存在等操作。供给表明的是,那一个操作的日子是常量时间。Set可含蓄的最大成分数是4294967295。

和List类型分裂的是,Set集结中不允许现身重复的因素。和List类型比较,Set类
型在效用上还留存着多个百般关键的天性,即在劳务器端完结多个Sets之间的聚合计算操作,如unions、intersections和differences。由于那么些操作均在服务端完毕,
由此作用相当高,何况也省去了汪洋的互连网IO开支

图片 26

 

1)sadd key
value1、value2…:向set中添增加少,若是该key的值本来就有则不会      重复加多

2)smembers key:获取set中有所的分子

3)scard key:获取set中成员的多少

图片 27

 

4)sismember key member:判别参数中钦定的分子是还是不是在该set中,1意味着存    
  在,0意味着空中楼阁或然该key本人就不设有

5)srem key member1、member2…:删除set中钦赐的分子

图片 28

 

6)srandmember key:随机回到set中的贰个成员

图片 29

 

7)sdiff sdiff key1
key2:重回key1与key2中离开的分子,何况与key的逐风度翩翩有关。即返回差集。

图片 30

 

8)sdiffstore destination key1
key2:将key1、key2相差的成员存款和储蓄在destination上

图片 31

 

9)sinter key[key1,key2…]:重回交集。

10)sinterstore destination key1 key2:将回来的交集存款和储蓄在destination上

图片 32

11)sunion key1、key2:再次回到并集。

图片 33

 

12)sunionstore destination key1 key2:将再次来到的并集存款和储蓄在destination上

图片 34

 

 

4.存储sortedset

Sorted-Sets和Sets类型极为近似,它们都以字符串的集聚,都不容许又一次的分子出今后三个Set中。它们中间的最首要差别是Sorted-Sets中的每八个分子都会有一个分
数(score)与之提到,Redis正是通过分数来为汇聚中的成员开展从小到大的排序。但是供给十三分提议的是,纵然Sorted-Sets中的成员必得是并世无双的,可是分数(score)
却是能够重新的。

在Sorted-Set中加上、删除或更新二个分子都以丰裕火速的操作,其时间复杂度为
集结中成员数量的对数。由于Sorted-Sets中的成员在汇聚中的地点是稳步的,由此,   
即正是访谈位于集结中部的成员也还是是可怜便捷的。事实上,Redis所具有的那黄金时代 
特征在不菲别的品类的数据库中是很难落到实处的,换句话说,在该点上要想到达和Redis   
相像的急忙,在其它数据库中开展建模是杰出狼狈的。

举个例子:游戏排行、天涯论坛火热话题等选取处境。

图片 35

 

1)zadd key score member score2 member2 …
:将享有成员以致该成员的         分数寄存到sorted-set中

2)zcard key:获取集结中的成员数量

图片 36

 

3)zcount key min max:获取分数在[min,max]以内的积极分子

zincrby key increment member:设置钦赐成员的加码的分数。

zrange key start end
[withscores]:获取集结中脚标为start-end的分子,[withscores]参数申明重返的分子满含其分数。

zrangebyscore key min max [withscores] [limit offset
count]:重回分数在[min,max]的积极分子并服从分数从低到高排序。[withscores]:展现分数;[limit
offset count]:offset,评释从脚标为offset的成分早前并回到count个分子。

zrank key member:再次来到成员在集聚中之处。

zrem key member[member…]:移除集合中钦点的积极分子,能够钦命七个成员。

zscore key member:重临内定成员的分数

 

 

5.存储hash

Redis中的Hashes类型能够看成具有String Key和String
Value的map容器。所以该品种特别符合于存款和储蓄值对象的音信。如Username、Password和Age等。就算Hash中隐含超级少的字段,那么该项指标数量也将仅攻陷比非常少的磁盘空间。每多个Hash能够积存42949672玖拾肆个键值对。

图片 37

 

 

1)hset key field value:为钦赐的key设定田野先生/value对(键值对)。

2)hgetall key:收获key中的全数filed-vaule

图片 38

 

3)hget key field:重回钦定的key中的field的值

图片 39

4)hmset key fields:设置key中的多少个filed/value

5)hmget key fileds:获取key中的八个filed的值

6)hexists key field:判断钦定的key中的filed是还是不是留存

7)hlen key:获取key所包括的田野(field)的数据

8)hincrby key field
increment
:设置key中filed的值扩大increment,如:age         扩展20

 

总结:

1、nosql

2、redis安装—-linux(重点)

3、jedis(重点)

4、redis的多寡操作类型 5种 (明白) — string和hash

5、redis的其他

 

相关文章