在了解Redis之前,我们先了解一下数据库的分类,现在主流的数据库可以分为关系型数据库和非关系型数据库。
关系型数据库,指的就是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关系模型就是指二维表格模型。关系模型由关系数据结构,关系操作集合,关系完整性约束三部分组成。现在主流的关系型数据库有Oracle,DB2(IBM),PostgreSQL,MySQL,Microsoft SQL Server,Microsoft Access,浪潮K-DB等。
非关系型数据库,Not only SQL,随着时代的发展,传统数据库已经不能满足人们的需求,主要表现在1、数据的高并发读写,2、海量数据的高效存储和访问,3、高可扩展性和高可用性,也就是说非关系型数据库有这三个好处,非关系型数据库主要分为4种:1、满足极高读写性能需求的key-value数据库:Redis,Tokyo Cabinet , Flare。2、满足海量存储需求和访问的面相文档的数据库:MongoDB,CouchDB。3、满足高可扩展性和可用性的面向分布式计算的数据库:Cassandra,Voldemort。4、满足构建关系图谱的图形数据库:Neo4J ,InfoGrid。
目前最流行的非关系型数据库是Redis,它主要的特点是:1、易扩展。2、灵活的数据模型。3、大数据量,高性能。4、高可用。
Redis的安装,详情请看blog.java1234.com/blog/articl…
使用iedis连接到Redis数据库blog.java1234.com/blog/articl…
Redis的5种数据类型:
字符串(String)
字符串列表(list)
有序字符串集合(sorted set)
哈希(hash)
字符串集合(set)
对字符串的操作(value最长512M)
1、赋值 set name java
2、取值 get name
3、获取并设置值 getset name open
4、删除 del name del name password (可以一次删除多个)
5、incr 自增 incr n
6、decr 自减 decr n
7、incrby 指定增量值
8、decrby 指定减量值
9、append 追加字符串
对哈希的操作 String key 和String Value 的Map容器
1、hget 单个字符设置 hset h1 username redis
hset h1 password java
hget h1 username
hget h1 password
2、hmset 多个字段一起设置 hmset h2 username redis password java
hmget h2 username
hmget h2 password
hmget h2 username password
hgetall h2 (获取h2中所有的数据)
3、hdel 删除 (可以一次删除一个或多个) hdel h2 username password
4、hincrby 增加数字 hset h1 age 20 hincrby h1 age 5
5、hexists 判断字符是否存在, 1表示存在 0表示不存在
6、hlen 获取hash属性个数 hlen h1
7、hkey 获取所有属性的名称 hkey h1
8、hvals 获取所有的属性值 hvals h1
存储list(ArrayList 使用数组方式 LinkedList使用双向链表方式)
1、Ipush 从左边开始添加 Ipush l1 a b c d
Ipush l1 1 2 3 4 存放顺序是 4 3 2 1 d c b a
2、Irange 获取指定方位的集合元素
Irange l1 0 -1 从第一个到倒数第一个,也就是全部的l1 所有的数据
Irange l1 0 6 获取从第一个到第6个集合的元素
3、rpush 从右端开始添加元素 rpush l2 a b c d
rpush l2 1 2 3 4 存放的结果是 a b c d 1 2 3 4
4、lpop 左侧弹出集合元素
rpop 右侧弹出集合元素(对刚才的l2进行操作) lpop l2 返回结果是4 rpop l2 返回的结果是a
5、llen 查看元素的个数
6、Ipushx 集合头部插入元素 Ipushx l2 xx
7、rpushx 集合尾部插入元素 rpushx l2 xx
8、Ipush 集合头部插入多个元素 Ipush l2 a1 a2
9、Irem 从指定方向删除指定个数的指定元素
Irem l2 2 1 从左边开始删除2个1
Irem l2 -2 3 从右侧开始删除2个3
Irem l2 0 2 删除所有的2
10、Iset设置集合指定索引的值 (索引从0开始)
11、linsert 在集合里插入指定元素
linsert l1 before xxx a 在xxx元素前面插入a
linsert l1 after xxx b 在xxx元素后面插入b
12、rpoplpush 把A集合的尾部元素弹出并插入到B集合头部 rpoplpush l4 l5
对set的操作(和list差不多,区别在于set中不能出现重复元素)
1、sadd key member[...] 添加set元素 sadd set1 a b c
2、smembers key 查看指定key集合元素 smembers set1
3、srem key member[...] 删除元素 srem set1 a c
4、sismember key member 判断某个元素是否存在,返回1 表示存在 0 表示不存在
5、sdiff 计算差集 sdiff set2 set3
6、sinter 计算交集 sinter set2 set3
7、sunion 计算并集 sunion set2 set3
8、scard 计算元素总数 scard set1
9、srandmember 随机取一个元素 srandmember set1
10、sdiffstore 把差集结果存入新的集合中 sdiffstore r1 set2 set3
11、sinterstore 把交集结果放入新的集合中sinterstore r2 set2 set3
12、sunnionstore 把并集结果放入心得集合中 sunnionstore r3 set2 set3
存储sorted-set集合(相比较与set集合 sorted-set 中的成员在集合中的位置是有序的)
1、zadd 添加元素 里面包括评分和值 zadd sort1 5 a 4 b 6 c (添加集合sort1 元素是abc,评分分别是5 4 6 ) 如果添加的元素集合中已经有了,则覆盖 。如果添加的元素不在集合中,则添加进集合
2、zrange 查找元素 -1代表最后一个 zrange sort1 0 -1
3、zrem 删除元素 zrem sort1 b
4、zcard 查看集合中元素的个数 zcard sort1
5、withscores 吧评分也显示出来 zrange sort1 0 -1 withscores
6、zrevrange 降序排列(按照评分降序排列) zrevrange sort 0 -1 withscores
7、zremrangebyrank 根据排名来删除元素 删除3个
zrerangebyrank sort1 0 2
8、zremrangebyscore 根据集体评分范围来删除元素 zremrangebyscore sort1 10 16
9、zrangebyscore 根据评分范围来查找元素 zrangebyscore sort 18 23 wit
10、limit 限定查找起始位置 类似于分页 zrangebyscore sort1 18 23 withscores limit 0 2
11、zincrby 给指定元素加分 zincrby sort1 5 h
12、zcount查找指定评分范围的元素个数 zcount sort1 20 23
redis 对key的常用操作
1、 keys 显示所有的key
2、keys s 查找所有以s开头的key
3、keys s? 查找所有s开头,后面紧跟任意一个字符的key
4、del n1 n2 nn 删除key
5、exists n2 判断key是否存在 1代表存在 0代表不存在
6、get n 获取key是n的值
7、rename n n2 将key为n的key改名为n2
8、expire n2 120 设置n2的有效时间
9、ttl n2 查看n2的剩余时间
10、type n2 显示类型
初识Redis
最新推荐文章于 2024-08-22 10:10:35 发布