Redis初认识

Redis是一个Nosql数据库,但主要角色是作为分布式缓存使用的,redis存在与内存中,性能极高,读取速度极快,看过很多博客,写的都很专业,但是对于初学者都不易看懂,我就简单分析下redis.

   既然redis是一个缓存,那么什么是缓存,因为我们的数据库的并发量都很小,所以当高并发的时间就会导致数据库瘫痪,

如下图为了解决这个问题我们就在服务层和数据库之间加入redis,当我们的查询请求过来时,首先①先去redis缓存中去查询,②如果有我们需要的数据就直接返回,如果没有我们需要的数据,③那么就去数据库查询,④返回给Servcie层,⑤查询到数据后会在缓存中也存一份,当下次在查询这个数据是就不会再去访问数据库,这样我们的数据库压力就减少了。



Redis的数据结构也很丰富,支持 字符串(String),散列(hasher),列表(sets),集合(sets),有序集合(sortedsets),下面我们就介绍一些常用的方法

 

[root@adminbin]# ./redis-server redis.conf   开启Redis服务

[root@adminbin]# ./redis-cli               开启Redis客户端

127.0.0.1:6379>ping                      测试Redis是否正常

PONG

字符串操作

127.0.0.1:6379>set str1 abc               存入一个字符串str1 值为abc

OK                                                    存入成功

127.0.0.1:6379>get str1                     获取字符串str1

"abc"

127.0.0.1:6379>  keys *                     查询所有的key值

1)"str1"

127.0.0.1:6379>incr key1                   设置一个key1并加1

(integer)1

127.0.0.1:6379>incr key1                   在加1

(integer)2

127.0.0.1:6379>decr key1                   减1

(integer)1

127.0.0.1:6379>decr key1                   在减1

(integer)0

127.0.0.1:6379>decr key1                   在减1

(integer)-1

127.0.0.1:6379>get key1                     获取当前key1

"-1"

127.0.0.1:6379>del str1                       删除key为str1的返回1为成功

(integer)1

散列操作

127.0.0.1:6379>hset hash1 field 1        存入一个hash1 { [field,1]…… }列表

(integer)1                               返回值为1表示成功

127.0.0.1:6379>hset hash1 field1 2              

(integer)1                                 

127.0.0.1:6379>hset hash1 field 2         修改hash1的元素field的值为2

(integer)0                                返回0表示修改成功

127.0.0.1:6379>hget hash1 field           获取hash1的元素field的值返回2

"2"  

127.0.0.1:6379>hkeys hash1                获取hash1的所有key

1)"field"

2)"field1"

127.0.0.1:6379>hvals hash2                 获取hash1的所有value

1)"1"

2)"2"

127.0.0.1:6379>hgetall hash1               获取hash1的所有 key  value

1)"field"

2)"1"

3)"field1"

4)"2"

列表操作

127.0.0.1:6379>lpush list 1 2 3 4 5 6           从左边添加,顺序为6,5,4,3,2,1

(integer)6

127.0.0.1:6379>rpush list a b c d e            从右边添加,顺序为a,b,c,d,e

(integer)11

127.0.0.1:6379>lrange list 0 -1                获取key为list的所有元素

 1) "6"

 2) "5"

 3) "4"

 4) "3"

 5) "2"

 6) "1"

 7) "a"

 8) "b"

9) "c"

10)"d"

11)"e"

127.0.0.1:6379>lpop list                 从左边取元素,取出来后集合中就没有了

"6"                                      返回取出的元素

127.0.0.1:6379>lrange list 0 -1           遍历集合

 1) "5"

 2) "4"

 3) "3"

 4) "2"

 5) "1"

 6) "a"

 7) "b"

 8) "c"

 9) "d"

10)"e"

Set集合操作 set无序 自动去重

127.0.0.1:6379>sadd set a b c d a a a           存入key为set 值为a b c d a a a 的集合

(integer)4

127.0.0.1:6379>smembers set                查询set集合中的所有元素,无序不重复的

1)"c"

2)"d"

3)"a"

4)"b"

127.0.0.1:6379>sadd seta a b c d e               存入集合seta值为a b c d e 

(integer)5

127.0.0.1:6379>sadd setb d e f g h              存入集合seta值为d e f g h 

(integer)5

127.0.0.1:6379>sdiff seta setb                 取seta与setb的差集即seta特有的

1)"a"

2)"b"

3)"c"

127.0.0.1:6379>sinter seta setb              取seta与setb的交集,即重复的

1)"d"

2)"e"

127.0.0.1:6379>sunion seta  setb           取seta与setb的并集,即合并两个所有元素

1)"g"

2)"d"

3)"c"

4)"a"

5)"b"

6)"e"

7)"h"

8)"f"

127.0.0.1:6379>smembers seta             查询seta的所有元素

1)"a"

2)"d"

3)"c"

4)"b"

5)"e"

127.0.0.1:6379>srem seta a                删除key为seta的元素a成功返回1

(integer)1

127.0.0.1:6379>smembers seta             查询seta的所有元素a已经被删除

1)"d"

2)"c"

3)"b"

4)"e"

有序集合的操作

存入key为zet的集合 每个元素都设置自己的分数取出时会按照分数由小到大排序

127.0.0.1:6379>zadd zset 1 a 2 b 5 c 3 d 1 g  

(integer)5

127.0.0.1:6379>zrange zset 0 -1                  取出zset的所有元素

1)"a"

2)"g"

3)"b"

4)"d"

5)"c"

127.0.0.1:6379>srem zset a                      删除指定元素a

(integer)1                                      返回1表示成功

127.0.0.1:6379>zrange zset 0 -1

1)"g"

2)"b"

3)"d"

4)"c"

127.0.0.1:6379>zrevrange zset 0 -1              从大到小取值

1)"c"

2)"d"

3)"b"

4)"g"

给定义的缓存设置过期时间

127.0.0.1:6379>expire list 100                定义过期时间为100秒

(integer)1

127.0.0.1:6379>ttl list                       查询还有多长时间过期

(integer)91

127.0.0.1:6379>ttl list

(integer)90

127.0.0.1:6379>ttl list

(integer)89

127.0.0.1:6379>ttl seta                      返回-1代表已经持久化

(integer)-1

127.0.0.1:6379>ttl list5                      查询不存在的返回-2

(integer)-2


上面这些事最基本的一些并且常用的操作,由于篇幅过长,先到此为止,下次会提下redis的驱逐机制,集群,持久化方案以及劣势等等,欢迎私信交流,这些东西多练练就很简单。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值