标签:异步操作 数据结构 设置密码 rect 怎么 type 两种 locking 队列
Remote Dictionary Server
Redis本质上是一个Key-value类型的内存数据库,很像memcached,整个数据库加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过十万次的读写操作,是一只性能最快的Key-Value DB。
Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。
String、List、Set、Sorted Set、hashes
消耗内存
Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以reids具有快速和数据持久化的特征。如果不将数据存放到内存中,磁盘I/O速度为严重影响reids的性能。如果设置了最大使用内存,则数据已有记录数达到内存限值后不能继续插入新值。
Redission是一个高级的分布式协调Redis客户端,能帮助用户在分布式环境中轻松实现一些java的对象(Bloom,filter,BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, ListMultimap, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, ReadWriteLock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog)。
设置密码:config set requirepass 123456
授权密码:auth 123456
MULTI、EXEC、DISCARD、WATCH
LRU算法
为什么要做Redis分区?
分区可以让Redis管理更大的内存,Redis将可以使用所有机器的内存。如果没有分区,你最多只能使用一台机器的内存。分区使Redis的计算能力通过简单地增加计算机得到成倍提升,Redis的网络带宽也会随着计算机和网卡的增加而成倍增长。
有哪些Redis分区实现方案?
客户端分区就是在客户端就已经决定数据会被存储到哪个redis节点或者从哪个redis节点读取。大多数客户端已经实现了客户端分区。
代理分区 意味着客户端将请求发送给代理,然后代理决定去哪个节点写数据或者读数据。代理根据分区规则决定请求哪些Redis实例,然后根据Redis的响应结果返回给客户端。redis和memcached的一种代理实现就是Twemproxy
查询路由(Query routing) 的意思是客户端随机地请求任意一个redis实例,然后由Redis将请求转发给正确的Redis节点。Redis Cluster实现了一种混合形式的查询路由,但并不是直接将请求从一个redis节点转发到另一个redis节点,而是在客户端的帮助下直接redirected到正确的redis节点。
可以在同一个服务器部署多个redis的实例,并把他们当作不同的服务器来使用,在某些时候,一个服务器是不够的,所以如果你想使用多个CPU,可以考虑一下分片(shard)。
标签:异步操作 数据结构 设置密码 rect 怎么 type 两种 locking 队列
原文地址:https://www.cnblogs.com/LBJLAKERS/p/12242674.html