Redis基本理解:语法

一、Redis简介

1、NoSQL数据库(Not Only SQL)

主题符合非关系型、分布式、开源代码和具有横向扩展能力的下一代数据库。

2、数据库分类

关系数据库 TRDB(Traditioinal Relation Database)、NoSQL数据库 NoSQL(Not Only SQL)、NewSQL数据库NewSQL(New SQL)。

3、TRDB与NoSQL的技术比较

数据库数据存储模式不一样,TRDB为强数据存储模式,NoSQL为弱数据储存模式。

分布式技术是NoSQL的核心技术思路,而TRDB以集中部署一台物理机为最初出发点。

TRDB的事务严格遵循ACID原则,而NoSQL主体遵循Base。

TRDB都遵循SQL标准操作,NoSQL没有统一的操作标准。

RDB基于单机的硬盘数据处理技术为主,NoSQL基于分布式的或者内存数据处理技术为主。

4、NoSQL数据库的四种存储模式

键值存储模式(Key Value Database)

相关产品:Redis、Voidemort、Berkeley DB等

特点:内存处理为主;数据结构简单;数据库系统本身规模也少。

优缺点:对值进行多查找功能很弱,缺少约束,更容易出错,不容易建立复杂关系。

文档存储模式

相关产品:MongoDB等

优缺点:简单、相对高效、查询功能强大,更接近于SQL数据库;缺少约束、数据出现冗余、查询功能强大相对低效,MongoDB这样的文档数据库主要是基于硬盘直接读写而进行数据操作的(键值数据库基于内存)。

列族存储模式(解决了大数据存储模式)

相关产品:HBase、Riak等

特点:擅长大数据处理;管理复杂,必须借助各种高效的管理工具来监控系统的正常运行;查询功能相对更加复杂;高密集写入处理能力。

优缺点:查找速度快,可扩展性强,更容易进行分布式扩展劣势:功能相对局限

图形存储模式

相关产品:Neo4j等

特点:处理各种具有图结构的数据;应用领域相对明确;以单台服务器运行的图数据库为主;图偏重于查找、统计、分析应用。

优缺点:利用图结构相关算法;需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

5、Redis定义

Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存、持久化key-value数据库

特点:Remote Dictionary Server(过程字典服务器),内存储存与持久化,数据类型丰富,主从复制。

Redis自身是一个Map,其中所有的数据都是采用key:value的形式存储。

Redis监听端口号为:6379

二、五种常用数据类型

数据类型是指存储的数据类型,也就是value部分的类型,key部分永远都是字符串。
1、String:字符串类型

可以存储字符串、整数、浮点型、二进制数。

为指定的一个键设置对应的值,若已经存在值,则覆盖原来的值
set key value 

查看过期时间
ttl key 

得到指定键的字符串值,如果键不存在,则返回nil
get key  

删除指定键的值
del key  

添加/修改多个数据
mset key1 value1 key2 value2...  

获取多个数据
mget key1 key2...  

获取字符串长度
strlen key  

追加数据到原来数据之后,如果原来数据存在就追加,否则新建
append key value  

替换
setrange key 替换位置(下标从0开始)  

先get再set
getset key value  

按照范围获取
getrange key 开始下标 结束下标  

查看所有的key
keys *  

对整数做原子加1操作
incr key  

对整数做原子减1操作
decr kry  

对整数做原子加指定数操作
incrBy key increment  

对整数做原子减指定数操作
decrBy key decrement  
2、list:列表

有次序,可以重复。

添加/修改数据
lpush key value1 [value2]...
rpush key value1 [value2]...

获取数据
lrange key start stop   例:lrange key 0 -1
lindex key index  (根据下标获取元素)
llen key  (获取长度)

获取并移除数据
lpop key
rpop key

通过下标截取指定的长度  (list已经被改变,只剩下截取的元素)
ltrim key start end

lset将列表中指定下标的替换为另一个值,更新操作
lset key 下标 新数据  (如果不存在列表,更新就会报错)

将某个具体的value插入到列表中的某个元素的前面或后面
linsert mylist defore "world" "other"  (other是要插入的元素,world被插入的元素)
linsert mylist after "world" "other"

规定时间内获取并移除数据 
blpop key1 [key2] timeout
brpop key1 [key2] timeout
3、hash:散列

hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应的值为nil。

添加/修改数据
hset key field value

添加,但是有则不添加,没有再添加
hsetnx key field value

获取数据
hget key field

删除数据
hdel key field1 [field2]

添加/修改多个数据
hmset key field1 value1 field2 value2

获取多个数据
hmget key field1 field2...

获取哈希表中字段的数量
hlen key

获取哈希表中是否存在指定的字段
hexists key field

获取哈希表中所有的字段名或字段值
hkeys key
hvals key

设置指定字段的数值数据增加指定范围的值
hincrby key field increment
hincrbyfloat key field increment
4、set:集合

String类型元素的集合,不重复且没有顺序。

添加数据
sadd key member1 [member2]

获取全部数据
smembers key

删除集合中指定数据
srem key member1 [member2]

获取集合元素的数量
scard key

判断集合中是否包含指定数据
sismember key member

从集合中随机返回(并删除)一个或多个元素
spop key

集合并运算
sunion key [key...]  (该集合是所有给定集合的并集)

集合交运算
sinter key [key...]  (该集合是所有给定集合的交集)

集合差集运算
sdiff key [key...]  (该集合是所有给定集合之间的差集)
5、sorted:有序集合

String元素不允许重复,可以从小到大排序。

添加数据
zadd key score1 member1 [score2 member2]

获取全部数据
zrange key start(开始索引) stop(结束索引) [WITHSCORES] #[WITHSCORES]可以除了数据还
显示分值

反转
zrevrange key start stop [WITHSCORES] 

删除数据
zrem key member [member ...]

获取集合数据总量
zcard key
key的语法:key区分大小写;key不要太长,尽量不要超过1024字节。不仅消耗内存,也会降低查找的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值