假如我有十台缓存服务器 ,
1:怎样的算法可以将 一个数据均匀的分配到缓存服务器上,避免某一台服务器压力过高,
2:然后怎样从十台缓存服务器中的某一台读取缓存数据;
谈谈php的具体实现方法
回复内容:
假如我有十台缓存服务器 ,
1:怎样的算法可以将 一个数据均匀的分配到缓存服务器上,避免某一台服务器压力过高,
2:然后怎样从十台缓存服务器中的某一台读取缓存数据;
谈谈php的具体实现方法
可以先看下此文:http://www.codinglabs.org/html/consis...
最简单的就是拉一个哈希函数出来(比如jshash,sdbmhash,或者直接用stl里头对string的hash都可以):hash(key) % 10 => 给出机器的ID。存取都用这样的规则,就没有问题了。
不过这种简单方式存在的问题是,可用性和扩展性降低了。任意一台机器挂掉,相应的数据就没地方存,不能自动保存到其他机器。新增机器的时候也很麻烦。
目前的终极解决方案是一致性哈希算法,相应的文章很多,开源实现也很多,自己去搜吧。
使用哈希算法是必然的,就是要看对什么做哈希
如果你的存的时候是不带Key的,也就是说,存入一个值,缓存服务器返回一个Key,下一次访问使用这个返回的Key取值。可以用microtime对缓存机器数取模。
如果你存的时候是带Key的,就比较麻烦了,因为要保证一致性,我用过一个办法是对md5做折叠。
就是对你预设的Key做一次md5,得到一个32位的字符串,然后把字符串中间对折,做16进制加法,得到一个较小的数字(可以对折多次,得到足够小的数字,如果不做对折,直接做截取也可以,目标就是把大数字变小),然后用得到的这个数字对机器数取模,这样可以保证一致性。下一次用这个Key还可以用相同的算法定位到某台机器
建议楼主了解下“ 一致性hash ”, 这个能完全能解决你这个问题。
而且在php中,一致性hash是被memcahe等扩展内置支持的。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software
