redies的复习总结

1.什么是redies?

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(nosql)数据库。它基于内存存储,速度快。

2.redis的五种常见的数据类型

String:类似于map<string,string>类型,key,vaule都是string类型。
常见的操作指令:

setnx key value:如果key存在就不设置值,返回0,如果不存在key就设置值(为原子性操作)
获取原来的值并设置新值:getset key newValue
expire key :设置过期时间;
设置值:set key vaule;
获取值:get key;
批量插入值:mset key1 vaule1 key2 vaule2;
批量获取值:mget key1 key2;
删除值:del key;
vaule自增:incr key;
vaule自减:decr key;
指定增加多少:incrby key 10 (增加10);
指定减少多少:decrby key 10;

Hash:可以看做是hash中key为一个对象的key,vaule为一个对象的vaule,vaule中有很多对象的属性,比如,key值为“学生”,vaule可以为name=张三,age=18。
hash的常见指令:

设置值:hset key field value;
获取值:hget key field ;
获取key的所有属性值:hgetall key;
批量插入值:hmset key filed value [field value...];
批量获取值:hmget key field1 field2……;
删除值:hdel key feild;
获取所有属性的值:hgetall key ;
获取key属性的个数:hlen key;
原key的field不存在则set成功,返回1,否则失败,返回0:hsetnx key filed vaule;

list:类似于链表结构,可以从左右两边分别插入,如果该链被移除,则该条不存在
list类型常见的数据指令:

从左侧插入值:lpush key vaule[vaule....];
lpushx:和lpush相似,但是会判断key是否存在,若key不存在则不进行任何操作;
rpushx:与lpushx相似;
右边插入数据  r是right的缩写:rpush key vaule[vaule....]
查看start---end中的数据,左包右包  -1表示到最后:  lrange key start end;
查看链表总长度:llen key;
弹出左边第一个数据:lpop key;
弹出右边第一个数据:rpop key;
阻塞式弹出:如左侧阻塞式弹出某一个key值,就会看有没有key值如果有就先弹出key值,再从左往右弹出属性的值,如果没有就会出现命令阻塞,指导添加新的值或者命令时间过期,如果同时写多个key值时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
左侧阻塞式弹出:blpop key[key...] timeout;(timeout为过期时间)
右测阻塞式弹出:brpop key[key...] timeout;
弹出list1右边的放入list2左边的:rpoplpush list1 list2;(医院排队);
阻塞版本;brpoplpush:阻塞版本;
lrem key count value:
count>0从左边删除count个value
count<0从右边删除count个value
count=0删除所有的value

set:是string类型的无序集合,集合成员唯一不允许出现重复数据

set集合中添加元素:sadd key element [element...];
查看所有元素:smembers key;
查看元素是否属于该集合:sismember key element;
删除集合中的元素:srem  检查指定元素是否存在于集合中,那么移除这个元素
查看元素中集合的数量:scard key;
随机获取集合中某一元素:srandmember key;

zset:zset在set集合的基础上给每一个元素一个分数描述,从而使元素变得有序可循,默认按分数升序排序。

添加元素 每个元素都会携带一个分数:zadd key score member1 score member2… 

Redis内存满了怎么办?

  1. 一般Redis的内存都是可以通过配置文件来配置最大内存的大小,条件允许的话可以通过改变Redis的内存大小来解决。
//设置Redis最大占用内存大小为100M
127.0.0.1:6379> config set maxmemory 100mb
//获取设置的Redis能使用的最大内存大小
127.0.0.1:6379> config get maxmemory
  
  1. Redis的内存淘汰
    既然可以设置Redis最大占用内存大小,那么配置的内存就有用完的时候。那在内存用完的时候,还继续往Redis里面添加数据不就没内存可用了吗?
    noeviction(默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)

allkeys-lru:从所有key中使用LRU算法进行淘汰

volatile-lru:从设置了过期时间的key中使用LRU算法进行淘汰

allkeys-random:从所有key中随机淘汰数据

volatile-random:从设置了过期时间的key中随机淘汰

volatile-ttl:在设置了过期时间的key中,根据key的过期时间进行淘汰,越早过期的越优先被淘汰

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值