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

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.kler.cn/a/1244.html

相关文章:

  • 《机器学习》——支持向量机(SVM)
  • TensorFlow Quantum快速编程(高级篇)
  • android源码编译后,为什么emulator一直黑屏或者停止android界面
  • 【数据库】四、数据库管理与维护
  • C++的标准和C++的编译版本
  • 每日一题-两个链表的第一个公共结点
  • Spring 事务(编程式事务、声明式事务@Transactional、事务隔离级别、事务传播机制)
  • Spring事务和事务传播机制
  • 插件化架构设计(2):插件化从设计到实践该考量的问题汇总
  • 菱形继承和C++相关问题
  • React 用一个简单案例体验一遍 React-dom React-router React-redux 全家桶
  • Springboot集成Swagger
  • 公司测试员用例写得乱七八糟,测试总监制定了这份《测试用例编写规范》
  • 【高阶数据结构】红黑树
  • css属性学习
  • Java基础之常见运算符
  • 77.qt qml-QianWindow-V1版本界面讲解
  • @JsonFormat与@DateTimeFormat
  • go语言如何使用new构造Map
  • 【技术方案】常见库存设计方案-各种方案对比总有一个适合你
  • 百度的文心一言 ,没有想像中那么差
  • 西安石油大学C语言期末重点知识点总结
  • 链表 算法
  • 盖子的c++小课堂——第十五讲:基础排序
  • Linux: 以太网 PHY 驱动简析
  • 2023年最新最全 VSCode 插件推荐