首页 > 数据库 >程序员的38大Redis面试问题及答案-下

程序员的38大Redis面试问题及答案-下

时间:2024-01-04 11:05:19浏览次数:52  
标签:38 6379 0.1 获取 元素 Redis 程序员 127.0 integer



文章目录

  • 1.查看配置语法
  • 2.获取所有配置项
  • 3.设置字符串
  • 4.获取字符串
  • 5.获取随机key
  • 6.获取key存储的类型
  • 7.判断key是否存在
  • 8.修改key的名称
  • 9.返回key存储的字符串的长度
  • 10.同时设置多个kv对
  • 11.获取多个key的值
  • 12.设置key 10秒后过期
  • 13.查看当前还剩几秒过期
  • 14.过期后获取key
  • 15.列表最多可以存多少元素
  • 16.从左向列表中添加元素
  • 17.获取列表中所有的元素
  • 18.从左弹出元素
  • 19.获取指定位置的元素
  • 20.获取列表长度
  • 21.集合
  • 22.向集合中添加元素
  • 23.获取集合中的元素
  • 24.删除集合中的指定元素
  • 25.zset类型
  • 26.向有序集合中添加元素
  • 27.获取有序集合元素个数
  • 28.获取所有元素
  • 29.获取所有元素并带上分值
  • 30.HyperLogLog
  • 31.向HyperLogLog中添加元素
  • 32.获取HyperLogLog元素个数
  • 33.发布订阅
  • 34.创建订阅频道
  • 35.在对应频道发布消息
  • 36.非后台执行备份
  • 37.后台执行备份
  • 38.查看是否需要密码验证


1.查看配置语法

CONFIG GET CONFIG_SETTING_NAME

2.获取所有配置项

127.0.0.1:6379> config get *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "cluster-announce-ip"
  8) ""
  9) "unixsocket"
 10) ""
 11) "logfile"
 12) ""

3.设置字符串

127.0.0.1:6379> set xk www.javaxks.com
OK

4.获取字符串

127.0.0.1:6379> get xk
"www.javaxks.com"

5.获取随机key

127.0.0.1:6379> randomkey
"xk"

6.获取key存储的类型

127.0.0.1:6379> randomkey
"xk"

7.判断key是否存在

127.0.0.1:6379> randomkey
"xk"

8.修改key的名称

127.0.0.1:6379> randomkey
"xk"

9.返回key存储的字符串的长度

127.0.0.1:6379> randomkey
"xk"

10.同时设置多个kv对

127.0.0.1:6379> mset date 5.21 mood haha
OK

11.获取多个key的值

127.0.0.1:6379> mget date mood
1) "5.21"
2) "haha"

12.设置key 10秒后过期

127.0.0.1:6379> expire date 10
(integer) 1

13.查看当前还剩几秒过期

127.0.0.1:6379> ttl date
(integer) 4

14.过期后获取key

127.0.0.1:6379> get date
(nil)

15.列表最多可以存多少元素

2的32次方 - 1

16.从左向列表中添加元素

127.0.0.1:6379> lpush fruit apple
(integer) 1
127.0.0.1:6379> lpush fruit strawberry
(integer) 2
127.0.0.1:6379> lpush fruit pear
(integer) 3
127.0.0.1:6379> lpush fruit orange
(integer) 4

17.获取列表中所有的元素

127.0.0.1:6379> lrange fruit 0 -1
1) "orange"
2) "pear"
3) "strawberry"
4) "apple"

18.从左弹出元素

127.0.0.1:6379> lpop fruit
"orange"
127.0.0.1:6379> lrange fruit 0 -1
1) "pear"
2) "strawberry"
3) "apple"

19.获取指定位置的元素

127.0.0.1:6379> lindex fruit 2
"apple"

20.获取列表长度

127.0.0.1:6379> llen fruit
(integer) 3

21.集合

set是string类型的无序集合,集合中的元素都是唯一的。

22.向集合中添加元素

127.0.0.1:6379> sadd books java
(integer) 1
127.0.0.1:6379> sadd books python
(integer) 1
127.0.0.1:6379> sadd books php
(integer) 1
127.0.0.1:6379> sadd books go
(integer) 1
127.0.0.1:6379> sadd books ruby
(integer) 1

23.获取集合中的元素

127.0.0.1:6379> smembers books
1) "go"
2) "python"
3) "java"
4) "php"
5) "ruby"

24.删除集合中的指定元素

127.0.0.1:6379> srem books ruby
(integer) 1
127.0.0.1:6379> smembers books
1) "php"
2) "java"
3) "python"
4) "go"

25.zset类型

有序的集合

元素为string类型

元素唯一,不重复。每个元素有自己的权重。

26.向有序集合中添加元素

127.0.0.1:6379> zadd animal 1 monkey
(integer) 1
127.0.0.1:6379> zadd animal 2 chicken
(integer) 1
127.0.0.1:6379> zadd animal 3 mouse
(integer) 1
127.0.0.1:6379> zadd animal 4 horse
(integer) 1

27.获取有序集合元素个数

127.0.0.1:6379> zcard animal
(integer) 4

28.获取所有元素

127.0.0.1:6379> zrange animal 0 -1
1) "monkey"
2) "chicken"
3) "mouse"
4) "horse"

29.获取所有元素并带上分值

127.0.0.1:6379> zrange animal 0 -1 withscores
1) "monkey"
2) "1"
3) "chicken"
4) "2"
5) "mouse"
6) "3"
7) "horse"
8) "4"

30.HyperLogLog

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

31.向HyperLogLog中添加元素

127.0.0.1:6379> pfadd color blue
(integer) 1
127.0.0.1:6379> pfadd color yellow
(integer) 1
127.0.0.1:6379> pfadd color pink
(integer) 1
127.0.0.1:6379> pfadd color white
(integer) 1
127.0.0.1:6379> pfadd color black
(integer) 1

32.获取HyperLogLog元素个数

127.0.0.1:6379> pfcount color
(integer) 5

33.发布订阅

种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。

Redis 客户端可以订阅任意数量的频道。

34.创建订阅频道

127.0.0.1:6379> subscribe everydayNews
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "everydayNews"
3) (integer) 1
1) "message"

35.在对应频道发布消息

127.0.0.1:6379> publish everydayNews "morning"
(integer) 1

订阅者收到:

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "everydayNews"
3) (integer) 1
1) "message"
2) "everydayNews"
3) "morning"

36.非后台执行备份

127.0.0.1:6379> save
OK

37.后台执行备份

127.0.0.1:6379> BGSAVE
Background saving started

38.查看是否需要密码验证

127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""

天生我材必有用,千金散尽还复来   --李白《将进酒》


标签:38,6379,0.1,获取,元素,Redis,程序员,127.0,integer
From: https://blog.51cto.com/u_14452299/9096999

相关文章

  • 程序员的20大RabbitMQ面试问题及答案
    文章目录1、什么是RabbitMQ?为什么使用RabbitMQ?2、RabbitMQ有什么优缺点?3.rabbitmq的使用场景4.RabbitMQ基本概念5.RabbitMQ中的broker是指什么?cluster又是指什么?6、RabbitMQ概念里的channel、exchange和queue是逻辑概念,还是对应着进程实体?分别起什么作用?7vhost是什......
  • 程序员的50大Redis面试问题及答案-上
    文章目录1.Redis是什么?2.Redis特性?3.Redis合适的应用场景?4.除了Redis你还知道哪些NoSQL数据库?5.Redis和Memcache区别?6.Redis的有几种数据类型?7.Redis有哪些高级功能?8.安装过Redis吗,简单说下步骤?9.redis几个比较主要的可执行文件?分别是?10.启动Redis的几种方式?11.Redis配置需要自......
  • 程序员的30大Mybatis面试问题及答案
    文章目录1.什么是Mybatis?2.Hibernate优点?3.Hibernate缺点?4.Mybatis优点?5.Mybatis缺点?6.什么时候用Mybatis?7.Mybatis的核心组件有哪些?分别是?8.#{}和${}的区别是什么?9.Mybatis中9个动态标签是?10.xml映射文件中,有哪些标签?11.Mybatis支持注解吗?优点?缺点?12.Mybatis动态sql?13.**Mybat......
  • 假如你现在开始准备春招,拿到offer时,不敢相信你该会是一个多么快乐的程序员
    还有一个月就要过年了,过完年回来就是春招和金三银四的面试季了,秋招还没拿到意向offer,春招要怎么提前准备,才更有胜算呢?,今天分享一下面试前的准备技巧和一些Android面试要点,这篇文章适用于所有需要就业的小伙伴,不管你是名校毕业,还是双非出身,我相信这篇文章能给你带来一点点的小的收获......
  • 程序员这个职业终将无法被取代,即使AI再怎么发展也不行
    前言程序员这个职业终将无法被取代,即使AI再怎么发展也不行,你可能会说为什么?那么你首先想想AI的数据模型,AI的算法,AI的代码是谁写的?难道是凭空产生的吗?只要还是程序员写的,那么AI就一定会受到限制。即使有一天AI真的发展到可以完全取代程序员的那一步,那这个世界又会变成什么样子?AI再怎......
  • redis集群搭建
    redis集群需要至少3个muster节点,当前搭建使用3个muster节点和3个slave节点,工6个redis节点三台虚拟机,分别是101、102、103第一步下载redis,这一步不在描述,我使用之前下载好的第二步在101虚拟机的/usr/local下创建redis-cluster文件夹,然后在redis-cluster下创建8001、8004文件夹......
  • Redis 之基本命令
    一、基本命令1、ping心跳命令2、get/set(读写键值命令)3、select(切换数据库)4、dbsize(查看key数量)5、flushdb(删除当前库中所有数据)6、flushall(删除所有DB中的数据) ......
  • Redis 底层数据结构
    在Redis数据结构和对象机制中提到的图中,我们知道,可以通过redisObject对象的type和encoding属性。可以决定Redis主要的底层数据结构:SDS、QuickList、ZipList、HashTable、IntSet、ZskipList。一、简单动态字符串(SDS)先来看看传统的C语言如何存储字符串的:比如一个"Redis"......
  • Redis基本知识与方法
    redis支持五种基本数据类型String(字符串)Hash(哈希)List(列表)Set(集合)Zset(有序集合)字符串(String):这是Redis最基本的数据类型,一个key对应一个value,且值的数据没有类型。Redis的字符串是二进制安全的,这意味着你可以存储任何类型的数据,比如jpg图片或者序列化的对象。哈希(Hash):哈希......
  • 揭开大龄程序员的职场密码:永葆青春的秘诀!
    前言说说失业感受吧,今年34,工作7年(这盛世如你所愿),感觉要告别这个行业了。失业一个月面试了好多,基本都是一轮游,有些感觉回答的挺好的,最后也没啥机会了,后面我都会问面试官招聘HC有多少,基本上是一两个,所以别看岗位不少,招的人真不多!好多公司连面试机会都不给了,像阿里、京东、百度、腾讯......