REDIS基本操作
一、NoSQL简介
概述
- NoSQL为非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称,NoSQL是web2.0时代海量数催生的产物。
特点
-
不支持SQL语法
NoSQL的世界中没有一种通用的语言,每种NoSQL数据库都有自己的语法,以及擅长的业务场景
-
读写性能高
NoSQL数据库都具有非常高的读写性能,尤其在海量数据下,他的表现非常优秀
-
灵活的数据类型
NoSQL的存储方式十分灵活,存储方式可以是JSON文档、键值对(Key Value)或者其他方式
二、REDIS简介
概述
- Redis是有意大利人开发的一款高速缓存数据库,是一个高性能的键值对(key_value)存储数据库。
- Redis全称为:Remote Dictionary Server(远程数据服务),使用C语言编写,并以内存作为数据存储介质,所以读写数据效率极高
特点
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还把value分为list,set,zset,hash等数据结构存储。
- 因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,提高效率。
Redis数据结构
Redis是key-value的数据结构,每条数据是一个键值对
-
键的类型是字符串
注意:键不能重复
-
值的类型为:
- string:字符串
- hash:哈希
- list:列表
- set:集合(无序)
- zset:有序集合
三、REDIS基本操作
Redis库操作
注:(linux环境)
-
服务端启动/停止/重启
service redis start/stop/restart
-
客户端连接
redis-cli
-
切换数据库
select n
注:数据库没有名称,默认有16个,通过0-15来标识,连接redis后默认选择第一个数据库。
-
退出客户端
exit
例
- 服务端启动/停止/重启
- 客户端连接,选择数据库及退出
数据操作
String类型
注:string是redis最基本的数据类型,一个key对应一个value
-
设置数据
set key value
-
查看数据
get key
-
追加数据
append key value
-
删除数据
del key
例
全局key操作
注:对redis的物种数据类型都适用的命令
-
查看所有的key
key *
-
删除键值对
del key
注:exists key 可以查看key是否存在
-
改名
rename key new
-
设置过期时间
expire key seconds
注:ttl key 查看时间,persist key 删除过期时间
例
-
查看、删除、改名
-
过期时间
注:ttl key后显示的数字为该key还可以存在的时间,当数值为-1时,表示可以一直存在,为-2时表示该key不存在
List类型
注:List类型是一个字符串列表,可以在列表头部或尾部添加/删除数据,在插入数据时,如果该key不存在,Redis将为该键创建一个
-
添加数据
rpush key value [value…]
注:rpush为右添加,即在数据尾部添加,lpush为左添加,在数据列表头部添加
-
查看数据
lrange key start stop
注:
- start为开始索引,stop为结束索引,与python中的索引类似,但是范围包括stop这个值
- lindex key index 查看某个数据
-
修改数据
lset key index value
-
删除数据
rpop key
注:lpop key 头部删除数据
例
Hash类型
注:hash类型是一个键值对集合(key—value),是string类型的field和value的映射表
-
添加数据
hset key field value
-
查看域值
hget key field
-
查看所有value
hget key field
-
查看所有filed和value
hegetall key
-
查看所有的value
hvals key
-
查看所有filed
hkeys key
例
Set类型
注:Set类型为无序的字符集合,元素具有唯一性,不重复
-
添加数据
sadd key member [member…]
-
查看数据
smember key
-
随机删除
spop key
-
指定删除
srem key member [member…]
Sort Se类
注:每一个成员都会有一个分数(score)与之关联,成员是唯一的,但是分数(score)却是可以重复的
-
添加数据
zadd key score member [score2 member2 …]
-
查看数据
zrange key start stop
注:zrangebyscore key min max 通过score查看
-
删除数据
zrem key member [member…]
-
通过索引删除多个数据
zremrangebyrank key min max
注:zremrangebyscore key min max 通过score删除