当前位置: 首页 > news >正文

Redis基础篇

redis的三大特点:

支持多数据类型,支持持久化,单线程 + 多路IO复用

对键操作的命令:

keys *    查看当前库所有key

exists key   判断key是否存在

del  key   删除

unlink key  非阻塞删除,异步删除

expire  key  seconds  为给定的key设置过期时间

ttl  key  查看还有多少秒过期,-1表示永不过期,-2表示已过期

select  libnum  切换库

dbsize  查看当前数据库key的数量

flushdb

flushall

Redis字符串

string 是redis最基本的数据类型,一个redis字符串value最多是512M

set  设置key - value

get  key  获取value

append  key  value  追加

strlen  key  获取key 对应 value 的长度

setnx  key value  只有key不存在时,设置key的值

incr  key   给value+1

decr key   给value-1

incrby  key  步长  给value +步长

decrby key  步长  给value -步长

mset key-val  key-val  ...      一次设置多个key-val

mget  key1  key2  key3  ...   一次获取多个值

msetnx  key-val  key-val  key-val  只要有一个存在,其他的都不会成功   原子性的

set  range  key  3 val  //范围内添加val

get  range  key  (1-3)   

setex  key  20  value   //设置key-val的时候,就设置过期时间

getset  key  new_value  //获取旧值,同时覆盖为新值

Redis列表

单键多值

将多个值存储在双向链表中

lpush   key1  v1  v2  v3   //头插

lrange  key1  0   -1

lpush   key2  v1  v2  v3   //尾插

lrange  key2  0   -1

lpop   key   //头删

rpop   key  //尾删

rpoplpush  key1  key2  //key1尾巴上val拿下来,放到key2的头上

lindex  key  idx   //按照索引下标获取元素

llen key   //获取列表长度

linsert  key before  "value"  "newvalue"   //value前添加newvalue

lerm key  n  "value"   //从左边删除 n个 value

lset  key  idx   newvalue   //把idx的oldvalue 替换为 newvalue

底层数据结构:quicklist

当数据量比较小时,使用ziplist

当数据大时,将多个ziplist连接成双向链表

Redis集合

sadd  key  v1 v2  v3  //添加

smembers  key  //查看

sismember key  v2  //是否存在

scard  key  //返回集合元素个数

srem  key  v1 v2  //删除集合元素

spop  key   //随机吐出一个值,并删除

srandmember  key  2  //随机从key取出两个val,但不删除

smove  k1   k2   v3  //把k1中一个val,移动到k2

sinter  k1  k2     //获取两个集合的交集

sunion k1 k2   //获取两个集合的所有元素

sdiff  k1  k2    //取出k1有,但k2没有的

底层数据结构:哈希表

Redis Hash

hset   key  字段  val     //差一个字段---值

hget   key  字段           //获取字段的所有值

hmset  key  字段1  val1   字段2  val2    字段3   val3    //批量设置

hexists  key  字段        //判断字段是否存在

hkeys  key    //查看key的所有字段

hvals  key     //查看所有字段对应的值

hincrby key 字段  2   //给字段+2

hsetnx  key  字段  40  //字段存在不添加,不存在才添加         

底层数据结构:数据量小,ziplist,数据量大,hashtable

Redis Zset (有序集合)

zadd   key  1  C++  2  java  3  C   

zrange  key  n1  n2  //查看n1到n2的数据

zrange  key  n1  n2  withscores

zrangebyscore  key  n1  n2  //把分数在n1到n2的取出

zrangebyscore  key  n1  n2 withscore

zrevrangebyscore  key  n1  n2   //从大到小   n1 > n2

zincrby  key  50  java   //增加

zrem  key  C++   //删除

zcount  key  200 500  //统计

zrank  key  C++  //查看排名 从0开始

底层数据结构:hash,跳跃表

http://www.lryc.cn/news/41902.html

相关文章:

  • unity的C#学习——静态常量和动态常量的定义与使用
  • 栈----数据结构
  • 【人人都能读标准】11. 原理篇总结:一个程序的完整执行过程
  • sheng的学习笔记-IO多路复用,NIO,BIO,AIO
  • 【Python入门第三十五天】Python丨文件打开
  • jsoup 框架的使用指南
  • web前端开发和后端开发哪个难度大?
  • 认证与认可之间有什么区别和联系?
  • 【Java|golang】1626. 无矛盾的最佳球队---最长子序列,不连续,二维数组排序
  • C++ 八股文(简单面试题)
  • RK3588平台开发系列讲解(显示篇)DP显示调试方法
  • 模拟请求发生跨域问题
  • Qt实践项目:仿Everything软件实现一个QtEverything
  • WEB网站服务(一)
  • Python数据分析script必备知识(一)
  • 初识linux之管道
  • C++成神之路 | 第一课【步入C++的世界】
  • 【面试题】大厂面试官:你做过什么有亮点的项目吗?
  • Springboot Long类型数据太长返回给前端,精度丢失问题 复现、解决
  • Anaconda虚拟环境的创建方法(命令创建)
  • 数据结构——树与二叉树
  • vue后台管理系统
  • spring boot 集成 postgis jar
  • 【Java进阶篇】——反射机制
  • Oracle中含有recover 状态的数据文件环境中,做异机恢复
  • 图像识别模型
  • [零刻]EQ12 N100 迷你主机:从开箱到安装ESXi+虚拟机
  • MongoDB基础
  • 【Linux】Linux基本指令(下)
  • 基于uniapp+u-view开发小程序【技术点整理】