redis—非关系型数据库

关系型数据库(sql数据库) 表和表 数据和数据之间 需要保护(用户名资料等)
数据存在磁盘中
非关系数据库(nosql)
redis 没有主外键约束 不需要保护 不支持sql语法,(验证码,历史记录等)
每种nosql数据库都有自己的语法
数据存在内存中,存储方式是joson文档(字典),键值对(key value)

验证码 时效性 不需要永久存在
str ,list,set,zset,hash

启动redis数据库

redis-server

登录

存在16个数据库  0-15进行表示  直接使用数据库(开始没有数据)
 默认进入的是0号数据库
redis-cli -h 127.0.0.1 -p 6379 (远程登录)

(注:redis语法不区分大小写)
本地登录
redis-cli

退出 SHUTDOWN

crtl+c 还原,如下图

切换选择数据表

SELECT 1

字符串数据

添加单条数据

set key  value
mset key value  key value
set name 李四      # 添加
set name zhangsan  # 修改
mset name wangwu  age 21  # 添加多条数据 

查看键值对
get name
查看所有的键值对
keys *
删除键值对
del name

添加多条
mset name1 zhangsan name2 lisi name3 wangwu

修改多条
mset name1 zhangsan1 name2 lisi2 name3 wangwu3

查询多条数据
mget name1 name2 name3

删除多条
del name1 name2 name3

判断键值对是否存在 存在返回1 反之0
exists name1


重命名

rname age  age1
set age 18

设置时效性键值对

set key value ex 时间
set name1 zhangsan ex  30

查看时效性 -1 永久存在 -2 不存在 其他数值 就是存活周期
ttl name1

设置时效性键值对
set name1 zhangsan ex 6000
设置成永久存在
persist name1

设置成临时的键值对
expire name1 6000

清空整个数据库
FLUSHALL

列表数据

lpush   rpush

先进后出  栈
 lpush li  a b  c d e f
           5 4  3 2 1 0 
先进先出  队列
lpush li2  a b  c d e f
           0 1  2 3 4 5

获取列表元素
lrange li  0  -1

获取列表长度
llen li


修改元素
lset li 0 ff


删除元素
lpop  从上往下   从左删除
rpop  从下往上  从右删除

lpop li2


根据下标获取元素
lindex  li 1

lpush  li3 a b c d e a a  d c b a
指定删除  2 个 a 元素   正数 从上往下删除  负数  反之
lrem li3 2 a
b c d e a  d c b a
lrem li3 -1 b 
b c d e a  d c  a

哈希类型

添加
hset dic  name  zhangsan  age 19  sex nan
查看
获取所有的字段
hkeys dic
获取所有的值
hvals dic
获取所有的键值对
hgetall dic
指定获取字段值
hget dic name
hmget dic name  age

修改
hset dic name zhangsan1 

删除
hdel dic name

获取长度
hlen dic

集合

无序集合

集合内的元素具有唯一性和无序性
sadd  se1  1 2 3 4 5 6 7 8 9
sadd  se2  4 5 6 7 8 9 10 11 12
sadd  se3  4 5 6 7 8 9 10 11 12 12

查询
smembers se1


随机删除  2是个数
spop  se1 2
指定删除  吧1 删除
srem  se1 1

交集
sinter se1 se2           只查看交接
sinterstore se4 se1 se2  吧交集保存进入se4
并集
sunion se1 se2
sunionstore se5 se1 se2  吧并集保存进入se5
差集

sdiff se2 se1
sdiffstore se6 se2 se1   吧差集保存进入se6

统计集合元素个数
scard  se6

随机获取集合内的元素    2 个数  正数可能存在重复元素  负数不会出现重复
srandmember se5 2
srandmember se5 -2

有序集合

分数
添加元素
zadd ze1 100 a  90 b 80 c 70  d 60 e 51 f
zadd ze2 20 a  30 b 40 c 70  g 60 t 51 u

查看元素
zrange ze1 0 -1
带上分数查看元素
zrange ze1 0 -1 withscores

删除元素
zrem ze1 b

交集 分数相加
zinterstore ze3 2 ze1  ze2

并集 存在相同的元素  分数相加
zunionstore  ze4 2 ze1  ze2

差集无


补充

获取指定分数范围的元素  ( 不包含 
zrangebyscore  ze4 (60    (100   WITHSCORES
zrangebyscore  ze4  60    100
zrangebyscore  ze4 (60    100
zrangebyscore  ze4  60    (100

获取指定分数范围的元素个数  返回个数
zcount ze4 70 120

按照分数范围删除元素
zremrangebyscore ze4 (60    (100

按照排名范围删除元素
zremrangebyrank ze4 0  2  # 0  2 下标  删除123
posted @ 2024-10-06 19:54  自由的心|勇敢的心  阅读(9)  评论(0编辑  收藏  举报