redis 基础知识

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[Redis基础知识问题]

1.redis是单线程还是多线程实现机制?这种机制的优缺点?

redis是单线程的实现机制。

优点:CPU单线程不会对服务器造成压力,对内存开销小!

缺点:当具有多个进程时,这时候不会分配资源给其他进程,处理时间会变长变慢,不能支持并发!

2.有几种持久化机制,分别是什么,及区别?

redis有RDP持久化、AOF持久化、无持久化、同时应用AOF和RDP持久化方式

RDP:该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘

RDP优点:适合用于进行备份和灾难恢复RDB,在恢复大数据集时的速度比AOF 的恢复速度要快。

RDP缺点:每次保存RDB 的时候,Redis都要fork()出一个子进程,并由子进程来进行实际的持久化工作比耗时

AOF:该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。

AOF优点:AOF可以带来更高的数据安全性,AOF 文件有序地保存了对数据库执行的所有写入操作

AOF缺点:AOF文件的体积通常要大于RDB 文件的体积。根据所使用的fsync 策略,AOF 的速度可能会慢于RDB

无持久化:通过配置的方式禁用Redis服务器的持久化功能,这样我们就可以将Redis 视为一个功能加强版的memcached了。

同时应用AOF和RDB:

3.如何设置、查看、取消key的过期时间?key过期策略?改变key 名字是否会改变过期时间?

设置过期时间:EXPIRE key seconds(s)/EXPIREAT key timestamp(timestamp)/PEXPIRE key milliseconds(ms)PEXPIREAT key milliseconds-timestamp(ms)

查看过期时间:PTTL key/TTL key

取消过期时间:PERSIST key

redis key过期策略(三种):

被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key

主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key

当前已用内存超过maxmemory限定时,触发主动清理策略

当改变key名字是不会改变key的过期时间

4.常见的数据结构及各结构至少5个常见命令?

String:

SET key value

GET key

SETEX key seconds value

MSETNX key value [key value ...]

SETNX key value

MSET key value [key value ...]

MGET key [key ...]

APPEND key value

INCR key

DECR key

List:

LPUSH key value [value ...]

RPUSH key value [value ...]

LLEN key

LRANGE key start stop

LPOP key

RPOP key

LLEN key

LINDEX key index

Hash:

HSET key field value

HGET key field

HMSET key field value [field value ...]

HMGET key field [field ...]

HSETNX key field value

HDEL key field [field ...]

HGETALL key

HINCRBY key field increment

Set:

SADD key member [member ...]

SCARD key

SINTER key [key ...]

SISMEMBER key member

SMEMBERS key

SDIFF key [key ...]

SINTER key [key ...]

SUNION key [key ...]

SortedSet:

ZADD key score member [[score member] [score member] ...]

ZINCRBY key increment member

ZCARD key

ZRANK key member

ZSCORE key member

ZREM key member [member ...]

ZRANGE key start stop [WITHSCORES]

ZREVRANGE key start stop [WITHSCORES]。

ZCOUNT key min max 。

key的操作:

DEL key [key ...]

EXISTS key

KEYS pattern

EXPIRE key seconds

TTL key

SORT key

5.如何发布信息?如何订阅一个频道和多个频道?订阅foo和f*会收到几条信息?

发布消息:PUBLISH channel message

订阅消息:PSUBSCRIBE pattern [pattern ...]

那么当有信息发送到频道foo 时,客户端将收到两条信息:

1、一条来自频道foo ,信息类型为message ;

2、另一条来自模式f* ,信息类型为pmessage ;

6.事务如何实现及使用?是否支持回滚?【非必须】

开启事物:MULTI

取消事物:DISCARD

且事务成功执行:WATCH lock lock_times

相关文档
最新文档