日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Ubuntu16.04.1上搭建Redis分布式集群并使用C#操作

為什么要集群:

通常為了提高網(wǎng)站的響應(yīng)速度,總是把一些經(jīng)常用到的數(shù)據(jù)放到內(nèi)存中,而不是放到數(shù)據(jù)庫(kù)中,Redis是一個(gè)很好的Cache工具,當(dāng)然了還有Memcached,這里只講Redis。在我們的電商系統(tǒng)中,熱點(diǎn)數(shù)據(jù)量往往巨大,比如單點(diǎn)登錄、用戶瀏覽商品的信息、用戶信息、用戶收藏的商品信息、短息提醒數(shù)據(jù)等等,也都用到了redis,如何使redis可以橫向可伸縮擴(kuò)展,這需要由多臺(tái)機(jī)器協(xié)同提供服務(wù),一臺(tái)掛掉了,另一臺(tái)馬上頂上去,即分布式的redis集群,就對(duì)系統(tǒng)的性能非常重要。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了福州免費(fèi)建站歡迎大家使用!

Redis集群的幾個(gè)重要特征:

(1).Redis 集群的分片特征在于將鍵空間分拆了16384個(gè)槽位,每一個(gè)節(jié)點(diǎn)負(fù)責(zé)其中一些槽位。

(2).Redis提供一定程度的可用性,可以在某個(gè)節(jié)點(diǎn)宕機(jī)或者不可達(dá)的情況下繼續(xù)處理命令.

(3).Redis 集群中不存在中心(central)節(jié)點(diǎn)或者代理(proxy)節(jié)點(diǎn), 集群的其中一個(gè)主要設(shè)計(jì)目標(biāo)是達(dá)到線性可擴(kuò)展性(linear scalability)。

(4).Redis集群要想正常工作,必須要三個(gè)主節(jié)點(diǎn),在我搭建的集群環(huán)境中,三個(gè)主節(jié)點(diǎn)都需要有一個(gè)從節(jié)點(diǎn),所以一共六個(gè)節(jié)點(diǎn),通俗來(lái)講也就是需要開(kāi)啟6個(gè)redis服務(wù)。

一、安裝Redis

整體結(jié)構(gòu):

 

二、進(jìn)群環(huán)境的配置

(1)在這里我就開(kāi)啟三臺(tái)Ubuntu16.04.1,因?yàn)殡娔X8G的內(nèi)存不夠用,如果你電腦內(nèi)存大可以開(kāi)啟4臺(tái)或者更多。在這三臺(tái)中我都安裝好了最新版本的Redis。

(2)集群配置文件的修改

需要的文件有:

 

 然后通過(guò)下面的命令把上面的文件復(fù)制到usr/redis/目錄下面:

首先在usr目錄下面創(chuàng)建一個(gè)redis和s2目錄:sudo mkdir redis;     sudo mkdir s2

目錄創(chuàng)建好后,到上面圖中的目錄下面,打開(kāi)終端,執(zhí)行:cp redis* /usr/redis/,上面圖中的文件就會(huì)到usr/redis/目錄下面,最后到usr/redis/目錄下面,打開(kāi)終端,執(zhí)行sudo cp redis* /usr/redis/s2/,這是該目錄下面也就會(huì)有相同的文件了。

 

 修改redis.conf文件中Cluster的配置,修改如下:

首先由于權(quán)限的問(wèn)題,我們先要切換到root身份:sudo passwd root命令,先修改root的密碼,修改之后,再執(zhí)行su root  接著輸入你設(shè)置的root密碼就可以切換到root身份,如下:

最后在root身份執(zhí)行下圖中的命令就可修改redis.conf文件:

這里只貼出來(lái)修改的代碼:(紅色標(biāo)注的部分為修改部分)

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# bind 127.0.0.1  //注釋掉

# Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited.
#
# When protected mode is on and if:
#
# 1) The server is not binding explicitly to a set of addresses using the
#    "bind" directive.
# 2) No password is configured.
#
# The server only accepts connections from clients connecting from the
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
# sockets.
#
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
protected-mode no //yes該為no

# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379

# TCP listen() backlog.
#
# In high requests-per-second environments you need an high backlog in order
# to avoid slow clients connections issues. Note that the Linux kernel
# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
# in order to get the desired effect.
tcp-backlog 511

# Unix socket.
#
# Specify the path for the Unix socket that will be used to listen for
# incoming connections. There is no default, so Redis will not listen
# on a unix socket when not specified.
#
# unixsocket /tmp/redis.sock
# unixsocketperm 700

# Close the connection after a client is idle for N seconds (0 to disable)
timeout 0

# TCP keepalive.
#
# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
# of communication. This is useful for two reasons:
#
# 1) Detect dead peers.
# 2) Take the connection alive from the point of view of network
#    equipment in the middle.
#
# On Linux, the specified value (in seconds) is the period used to send ACKs.
# Note that to close the connection the double of the time is needed.
# On other kernels the period depends on the kernel configuration.
#
# A reasonable value for this option is 300 seconds, which is the new
# Redis default starting with Redis 3.2.1.
tcp-keepalive 300
################################ REDIS CLUSTER  ###############################
#
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# WARNING EXPERIMENTAL: Redis Cluster is considered to be stable code, however
# in order to mark it as "mature" we need to wait for a non trivial percentage
# of users to deploy it in production.
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
# started as cluster nodes can. In order to start a Redis instance as a
# cluster node enable the cluster support uncommenting the following:
#
cluster-enabled yes 
# Every cluster node has a cluster configuration file. This file is not
# intended to be edited by hand. It is created and updated by Redis nodes.
# Every Redis Cluster node requires a different cluster configuration file.
# Make sure that instances running in the same system do not have
# overlapping cluster configuration file names.
#
cluster-config-file nodes-6379.conf

# Cluster node timeout is the amount of milliseconds a node must be unreachable
# for it to be considered in failure state.
# Most other internal time limits are multiple of the node timeout.
#
# cluster-node-timeout 15000

# A slave of a failing master will avoid to start a failover if its data
# looks too old.
#
# There is no simple way for a slave to actually have an exact measure of
# its "data age", so the following two checks are performed:
#
# 1) If there are multiple slaves able to failover, they exchange messages
#    in order to try to give an advantage to the slave with the best
#    replication offset (more data from the master processed).
#    Slaves will try to get their rank by offset, and apply to the start
#    of the failover a delay proportional to their rank.
#
# 2) Every single slave computes the time of the last interaction with
#    its master. This can be the last ping or command received (if the master
#    is still in the "connected" state), or the time that elapsed since the
#    disconnection with the master (if the replication link is currently down).
#    If the last interaction is too old, the slave will not try to failover
#    at all.
#
# The point "2" can be tuned by user. Specifically a slave will not perform
# the failover if, since the last interaction with the master, the time
# elapsed is greater than:
#
#   (node-timeout * slave-validity-factor) + repl-ping-slave-period
#
# So for example if node-timeout is 30 seconds, and the slave-validity-factor
# is 10, and assuming a default repl-ping-slave-period of 10 seconds, the
# slave will not try to failover if it was not able to talk with the master
# for longer than 310 seconds.
#
# A large slave-validity-factor may allow slaves with too old data to failover
# a master, while a too small value may prevent the cluster from being able to
# elect a slave at all.
#
# For maximum availability, it is possible to set the slave-validity-factor
# to a value of 0, which means, that slaves will always try to failover the
# master regardless of the last time they interacted with the master.
# (However they'll always try to apply a delay proportional to their
# offset rank).
#
# Zero is the only value able to guarantee that when all the partitions heal
# the cluster will always be able to continue.
#
# cluster-slave-validity-factor 10

# Cluster slaves are able to migrate to orphaned masters, that are masters
# that are left without working slaves. This improves the cluster ability
# to resist to failures as otherwise an orphaned master can't be failed over
# in case of failure if it has no working slaves.
#
# Slaves migrate to orphaned masters only if there are still at least a
# given number of other working slaves for their old master. This number
# is the "migration barrier". A migration barrier of 1 means that a slave
# will migrate only if there is at least 1 other working slave for its master
# and so forth. It usually reflects the number of slaves you want for every
# master in your cluster.
#
# Default is 1 (slaves migrate only if their masters remain with at least
# one slave). To disable migration just set it to a very large value.
# A value of 0 can be set but is useful only for debugging and dangerous
# in production.
#
# cluster-migration-barrier 1

# By default Redis Cluster nodes stop accepting queries if they detect there
# is at least an hash slot uncovered (no available node is serving it).
# This way if the cluster is partially down (for example a range of hash slots
# are no longer covered) all the cluster becomes, eventually, unavailable.
# It automatically returns available as soon as all the slots are covered again.
#
# However sometimes you want the subset of the cluster which is working,
# to continue to accept queries for the part of the key space that is still
# covered. In order to do so, just set the cluster-require-full-coverage
# option to no.
#
# cluster-require-full-coverage yes

# In order to setup your cluster make sure to read the documentation
# available at http://redis.io web site.

修改完之后 按下ESC 鍵,再按下  :wq!保存突出。同理,s2中的redis也是這樣修改的但是,需要修改一下端口號(hào),不能喝上面的端口號(hào)重復(fù),s2中的端口號(hào)為6390。

使用相同的方式修改第二臺(tái)上redis的配置:只不過(guò)在該臺(tái)機(jī)器上只有一個(gè)redis服務(wù)(節(jié)點(diǎn))

上面這兩臺(tái)服務(wù)器中的三個(gè)redis服務(wù)地址分別為:192.168.0.109:6379    192.168.0.109:6390    192.168.0.111:6379,在進(jìn)行第三部的時(shí)候要用到。


本文題目:Ubuntu16.04.1上搭建Redis分布式集群并使用C#操作
鏈接分享:http://www.5511xx.com/article/cossgep.html