C# Redis 介绍

Anonymity | | 访问(122)

  1. 什么是Redis?

  Redis is a very fast non-relational database that stores a mapping of keys to five different types of values.

  (Redis是一种速度非常快的非关系型数据库,NoSql的一种,它存储着以键值对为形式的数据,值的类型5种。)

  Redis是Remote Dictionary Server(远程字典服务器)的缩写。

  Redis supports in-memory persistent storage on disk, replication to scale read performance, and client-side sharding to scale write performance.

  (Redis支持内存持久化到磁盘,以复制的形式来扩展读取的性能,以客户端碎片化(client-side sharding)的方式来扩展写的性能。)

  Sharding is a method by which you partition your data into different pieces.

  In this case, you partition your data based on IDs embedded in the keys, based on the hash of keys, or some combination of the two.

  Through partitioning your data, you can store and fetch the data from multiple machines, which can allow a linear scaling in performance for certain problem domains.

  (碎片化是一项技术,这项技术将你的数据分割成不同的部分。

  这样一来,每个数据碎片将以ID作为它的键,根据哈希码的形式,这样就能把你的数据存储在不同的机器,然后以线性的方式对性能进行扩展。)

  2. Redis支持的数据类型

  字符串(String)

  列表(List)

  集合(Set)

  散列(Hash)

  有序集合(ZSet)

  3. 存储形式

  Redis数据库中所有数据都存储在内存中。

  优势:由于内存的读写速度远快于硬盘,所以Redis在性能上比其他基于硬盘存储的数据库有明显优势。

  eg:

  在一台普通的PC上Redis可以每秒读写10万+个键值。

  缺点:由于数据存储在内存中,程序退出后内存中的数据会丢失。

  为了弥补这一缺点,Redis提供了持久化功能,用于将内存中的数据通过异步的方式写入到硬盘。

  由于是异步的,因此不会影响其继续提供其他服务。

  4. 应用场景

  很多情况下,Redis被应用于缓存,队列系统等。

  当应用于缓存的场景,Redis为每个键值设置生存时间(TTL - Time to Live),生存时间到期后该键值会自动被删除。