历史问答题
一、redis有哪些类型?
-
string是redis最基本的类型,一个key对应一个value,一个键最大能存储512MB。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
-
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis中每个 hash 可以存储 232 - 1 键值对, 可以看成具有KEY和VALUE的MAP容器,该类型的数据仅占用很少的磁盘空间。
-
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
-
Redis 的 Set 是 string 类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
-
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
二、redis String类型有哪些常用命令?列举6个
-
set key value:Redis SET 命令用于设置给定 key 的值。如果 key 已经存储值, SET 就覆写旧值,且无视类型
-
get key:Redis GET命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key储存的值不是字符串类型,返回一个错误。
-
getrange key start end:用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)
-
getset key value:Getset 命令用于设置指定 key 的值,并返回 key 的旧值,当 key 不存在时,返回null;
-
del key:删除指定的KEY,如果存在,返回值数字类型。(删除语法)
-
incr key:Incr 命令将 key 中储存的数字值增1。如果 key 不存在,那么 key 的值会先被初始化为0 ,然后再执行 INCR 操作(自增)
-
decr key:decR 命令将 key 中储存的数字减1(自减)
三、redis String类型有哪些应用场景?列举4个
分布式锁;计数器;保存图片内容;保存json字符串数据
1、String通常用于保存单个字符串或JSON字符串数据
2、因String是二进制安全的,所以你完全可以把一个图片文件的内容作为字符串来存储
3、计数器(常规key-value缓存应用。常规计数: 微博数, 粉丝数)
INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果。假如,在某种场景下有3个客户端同时读取了mynum的值(值为2),然后对其同时进行了加1的操作,那么,最后mynum的值一定是5。不少网站都利用redis的这个特性来实现业务上的统计计数需求。
四、redis Hash类型有哪些常用命令?列举4个
-
HSET KEY FIELD VALUE //为指定的KEY,设定FILD/VALUE (赋值)
-
HGET KEY FIELD //获取存储在HASH中的值,根据FIELD得到VALUE(取值)
-
HMGET key field[field1] //获取key所有给定字段的值
-
HGETALL key //返回HASH表中所有的字段和值
-
HKEYS key //获取所有哈希表中的字段
-
HLEN key //获取哈希表中字段的数量
-
-
HDEL KEY field1[field2] //删除一个或多个HASH表字段(删除)
-
HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值
-
HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment 。
-
HINCRBYFLOAT key fieldincrement 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
-
Hexists key field //查看哈希表 key 中,指定的字段是否存在
五、redis Hash类型有哪些应用场景?列举4个
六、jedis客户端和RedisTemplate你认为的区别?
Jedis是Redis官方推荐的面向java的操作Redis的客户端,而RedisTemplate是SpringDataRedis中对JedisApi的高度封装。SpringDataRedis相对于Jedis来说可以方便地更换Redis的Java客户端,比Jedis多了自动管理连接池的特性,方便与其他spring框架进行搭配使用如:Springcache
七、redis缺点是什么?(有什么解决方案)
1.服务器意外关机导致数据丢失:根据条件进行持久化
2.持久化:redis的数据是存储在内存中,若想要放入硬盘中需要进行持久化;有两种方式:
定时快照:将整个数据库写入硬盘中,每次都是写入全部数据,代价非常大;
语句追加(aof):追踪变化的数据,但是追加的log可能非常大,同时所有的操作都要执行一边,回复的慢;
3.耗内存:优化存储方式;配置更大的内存
文章创建于: 2019-09-17 10:08:01
相关阅读
win10中wpcap.dll丢失的解决办法(解决Proteus中与网络
解决Proteus中与网络类仿真相关的模块报错问题,如ENC28J60。 使用windump时,提示wpcap.dll丢失。 下载win10pcap.msi安装。 网址:htt
Windows 10 磁盘重新分区 1. 此电脑 -> 右键 -> 管理2. 存储 -> 磁盘管理3. 压缩卷3.1 选择待分区磁盘 -> 右键 -> 压缩卷3.2 102
这里推荐一个网址:https://msdn.itellyou.cn/这里有各种系统提供下载~那么可能小白会遇到问题,看不懂英文business:商业版consumer:消
华为Mate 30发布,苏宁推出以旧换新400补贴等10大福利
9月19日晚,华为在德国慕尼黑举办Mate 30系列发布会,发布年度旗舰手机华为Mate30系列。据悉,华为新品手机已于9月20日0点在苏宁开启预
在这一年中,涌现了许多在微信营销方面取得成功案例。小编精选了本年度微信营销案例最经典的十个案例,和广告同仁共同探索学习一下。