非关系型数据库--redis

NoSQL

非关系型数据库的统称
不保证关系数据的ACID(事务性)特性
关注性能(高性能)
不用SQL语言
不用表存储数据

redis

开源;用 key-value存储数据;数据存储在内存中(启动redis,会把硬盘的数据读取到内存;写数据时先把数据直接写到内存,然后会定期把数据保存到硬盘。所以高性能;)

服务端操作:
启动服务:redis-server
停止服务: ctrl+c
客户端操作:
启动客户端:redis-cli–raw
运行测试命令:ping
服务端 来一个PONG 说明连接成功
切换数据库:
不能自己创建仓库,数据库没有名称,默认有16个,通过0-15来标识

select 6

默认连接上服务端后,进入的仓库数字时0.

键值对

键值对:一个键对应一个数据
键名不能重复
键名类型是字符串
值类型可以分为五种:
字符串string
哈希hash
链表list
集合set
有序集合zset
注意:如果某个键值对存储了某个数据类型的值,不能修改为其他的数据类型

String

字符串类型
最基本类型
最大能存储512MB数据
是二进制安全的,可以存储任何数据,比如数字,图片等

1.增加,修改
(如果设置的键不存在就是增加,存在就是修改)

set key value 
set 'user1' 'wang'

设置过期时间(时间一到,键值对就过期了)

setex key seconds(秒数) value 

2.获取单个键的值(查询)

get key
get 'user1'

不存在,返回nil

3.设置多个键值对

mset key1  value1  key2  value2  ....

4.追加值(在原有的数据上添加值)

append key value 

注意:对于不存在的键,相当于新建一个键值对。

5.获取多个键的值

mget key1,key2...

键命令:

1.查找键,参数支持正则表达:

keys 表达式
keys *     //  查看当前仓库的所有键
keys '*a*'      // 查看包含a的键

2.判断键是否存在,如果存在返回1,不存在返回0

exists 键 

3.查看键对应的value的类型(5种类型之一,不存在为null)

type 键

4.删除键(对应的值就删掉了)

del 键1, 键2 ....

5.设置过期时间,以秒为单位

exoire   键   时间

6.查看某个键的有效时间(不存在为-2,存在且永久有效为-1,有时间的就返回使劲啊)

ttl 键

hash(哈希)

1.用于存储键值对集合
2.值的类型为string
3.键可以理解为属性,一个属性对应一个值
(键里存了值,值里又存了一个又一个的键值对)

1.增加,修改
设置单个属性

hset 键  属性 值

设置多个属性

hmset 键 属性1  值1  属性2 值2 

2.获取
获取键所有属性和所有值

hgetall '键'

获取指定键所有属性

hkeys 键

获取一个属性的值

hget  键  属性

获取多个属性

hmget 键 属性1 属性2....

获取所有属性的值

hvals 键

3.删除
删除整个hash键及值,del 命令

del  键

删除某几个属性,属性对应的值会被一起删除

hdel  键  属性1  属性2 ...

list

链表中存的数据类型为string
按照添加的顺序排序,顺序是从左向右(有序)
list是双向链表
可以放重复的数据r
1.增加
从左边插入

lpush 键  值1   值2  ....

从右侧插入(注意顺序)

rlpush 键  值1   值2  ....

在指定的元素前或后插入新元素

linsert   键  before/after   现有元素

2.获取
返回链表中指定范围内的元素

lrange    键    起始位置    结束位置     

索引从左侧开始,下标从0开始 ; 索引可以为负数,表示从尾部开始计数,如:-1代表最后一个元素

3.修改
根据索引位置来修改

lset  key  index  value  

4.删除
将列表中前count次出现的值为value 的元素移除
count>0 从头往尾删除
count<0 从尾往头删除
count=0 全部删除

lrem   键   count  值 

del 删除全部

set

无序集合
元素为string类型
元素具有唯一性,不重复
注意:对于集合,没有修改操作

1.增加
添加元素

sadd  键 值1  值2 ....

2.获取

smembers  键 

3.删除
del 还是可以全部删除
删除指定元素

srem  键  值 

zset

有序集合
元素为string类型
元素具有唯一性,不重复
每个元素都会关联一个分数,分数可以为负数,通过分数将元素从小到大排序
注意:没有修改操作

1.增加(注意:分数在前 值在后)

zadd  键  分数1 值1  分数2  值2....

注意:如果增加的值已经存在,zadd就是修改那个值的分数,重新排序。多个值有相同的分数,那么会按照字典顺序排序。
2.获取
1.规则与list相同

zrange 键   起始位置  结束位置 

2.返回score值在min和max之间的元素

zrangebyscore  键 min   max

3.返回成员member的score值

zscore  键   值(member)

3.删除
1.删除指定的元素

zrem  键 值1  值2 ....

2.删除分数在指定范围的元素

zremrangebyscore   key   min  max 

PS:内容来源于视频教学,稍作整理~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值