什么是Redis?
根据百度百科介绍:
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
今天打算记录一下自己关于Redis的学习,写一部分基础,当做初见,以后打算系统的研究一下。
具体安装很多人都写过啦,就是去官网然后下载下来,需要的话就配置一下环境变量,或者每次直接输入路径就可以打开。相比于安装我更想具体记下来一些干货~~~
Redis的优点
首先,Redis是开源免费的!其次,Redis性能特别高, Redis读的速度是110000次/s,写的速度是81000次/s
Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化。
与其它键值数据存储相比,Redis有一组相对丰富的数据类型。
Redis可以将数据复制到任意数量的从机中。
Redis的数据类型:
Redis的数据类型是它的大优势之一!一共有五种数据类型:
1.String(字符串)
Redis中的String是个字节序列。二进制安全的,意味着它们的长度不由任何特殊终止字符决定!能存512兆字节的内容。对于String,需要记住SET和GET指令。
2.Hashes(哈希)
属于散列表,比如一个用户要存储其姓名、身份证、年龄等等信息,就很适合使用哈希。每个哈希可以存40亿多个键值对。记住HMSET和HGETALL指令。
3.List(列表)
感觉没啥好说的,学过java很容易理解。属于字符串列表,按插入顺序排序,可以向头或尾部添加元素。记住lpush和lrange指令。
4.Set(集合)
属于字符串的无序集合,集合里不能出现重复的数据,如果第二次添加相同元素,那么就会被忽略掉。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。记住sadd和smembers指令。
5.ZSet(有序集合)
也是String类型的集合,同样不允许重复,和Set基本相似,但是ZSet是有序的集合,每个元素都关联一个double类型的分数score,并且以此为集合中的成员进行排序。分数越大!越在底下!(多押韵)zset成员是唯一的,但是score可以重复,多了排一起就得了~~记住zadd和zrangebyscore指令(觉得不好记跟我一起分开念:z range by score,写时候得写一起!)
简单操作
写了这么多!那么如何操作呢?!好的,现在来简单耍一耍:
我们打开Redis的serve,在控制台输入:redis-cli
会出来这么个玩意:
代表着进来了!127.0.0.1是本地地址,6379是占用的端口!所以请务必保证6379端口在开启Redis前是闲着没事干的~
我们可以输入指令看看他有没有反应,比如说:
嗯~~~真会玩!
- 接下来我们先试试String
如果想删除的话,就是del name就完事了,这里说一下,name是key,后面的数据是值。如果我再set name King,那么这个就会把之前的数据给挤下去。有很多的方法去操作字符串,比如通过getrange来获取子字符串啊,这样的。可以自己去查阅资料。
-
试试Hashed
hash
哈希有很多的操作HGETALL后面得写key,我手按太快报错了。。。HDEL就是删除,HEXIST 就是查询key是否存在。HVals是获取所有值。。。很多了,具体也是查文档。
-
试试List
List
这里写的很详细了,基本上从图里能看出来都做了啥操作吧?
-
试试Set
Set
来来来,我这本篇文章是要告诉大家每个数据类型里面的指令敲错了是啥样的!srem是移除一个或多个数据。
-
试试ZSet
ZSet
基本上是和Set一样的,用zrangebyscore 0 10 可以看到按照score顺序排序之后的样子。
后面会陆续更新,发送订阅,处理事务等~~~
网友评论