redis基本类型

Redis 简介

Redis (Nosql--not only sql)是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供String,list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis与其他key-value存储有什么不同?

  • Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

  • Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

关于RedisKey的基本命令

  • keys *                查看所有的key
  • set  key  value   设置添加key
  • EXISTS key      判断当前是否存在
  • move  key        移除key
  • EXPIRE  key   time 是指key的过期时间,time单位为秒
  • ttl  key              查看当前key剩余时间
  • type  key         查看key的类型
  • flashdb           清空当前数据库中的所有 key。

注:官网查询命令:https://redis.io/commands

String(字符串类型)

  •  APPEND  key  "String"   追加字符串,如果该key不存在,则新增
  • STRLEN  key                  查看该字符串长度
  • get  key                           获得key 的value
  • GETRANGE  key  num1  num2   截取指定key的字符串,如果num等于-1,则该命令和get key是一样的
  • SETRANGE  key  num   String   替换指定下标位置开始的字符串
  • incr  key                          实现值的加1
  • decr   key                       实现值的减1 
  • INCRBY  key  num         实现增长指定数字
  • DECRBY key  num        实现值减少指定数字
  • setex  key time  "String"  设置过期时间(set with expire)
  • setnx key "String"          不存在再设置(set if not exist),返回值为1则成功,反之则失败,常用于分布式锁中
  • mset  key1 value1  key2 value2... 实现批量设置key-value
  • mget key1  key2....       实现批量获取value  

List

所有的list命令都是实用  l  开头的

  • LPUSH list value          实现添加到list中
  • LRANGE  list num1  num2     实现从指定位置num1获取,到num2为止,如果num2为-1则获取全部list。
  • 注:该方法展示是越晚添加越先展示
  • Rpush  list  value         实现从list的尾部添加
  • Lpop   list                     从list的头部移除一个
  • Rpop  list                     从list的尾部移除一个
  • Lindex   list    num       获取指定位置的list的值   
  • Llen  list                       获取list的长度    
  • ltrim  list  num1  num2 通过下标从指定位置开始截取指定长度的list,是在原list上进行操作
  • rpoplpush  list1  list2    移除最后一个元素并添加到另一个list中
  • lset list num value       可将list中指定位置的值更换成输入的值。如若不存在列表或者指定位置不存在就报错
  • linsert list  before||after  privodvalue newvalue  在list中的值的前面或者后面插入新的值 ,如果list不存在,就新建一个列表

set

set的所有命令都是以s开头

  •  sadd set String          添加到set中
  • smembers   set                  查看set
  • sismember   set   String    判断一个值是否在set集合中
  • scard  set                          获取set中的元素个数 
  • srem   set  String              移除set中指定的元素
  • srandmember  set  (num)        随机筛选一个或者指定个数元素
  • spop    set                         随机删除key
  • smove  set1  set2 String   移动一个指定的 元素到另一个set集合中
  • sdiff   set1  set2               两个set集合的差集
  • sinter   set1  set2             两个set集合的交集
  • sunion   set1  set2            两个几个的并集

hash哈希类型

hash是map集合,所以在set的值变成了map集合,本质和String类型没有很大的区别,多了一个key-value

  • hset  hash  key  value    给哈希中添加值
  • hget  hash  key               获取指定hash中的指定key的值
  • hmset  hash  key1  value1  key2  value2...给哈希添加多个值
  • hmget hash key1 key2   获取多个值
  • hgetall hash                   获取指定hash中的所有的键值对
  • hdel  hash key               删除指定的key
  • hlen   hash                    获取hash中的长度
  • hkeys  hash                  获取所有的key
  • hvals  hash                  获取所有的value

Zset(有序集合)

在set的基础上,增加量 一个值,如:set k1 v1     zset  k1 score v1

 

posted @ 2021-04-22 16:07  swallower  阅读(85)  评论(0)    收藏  举报