redis学习(10)—redis哈希槽扩容与缩小

1、将节点重新加入集群
6387为主节点,6388为从节点
步骤看上一篇

2、重新分配槽号
redis-cli --cluster reshard 192.168.1.138:6381
说明:
ip:port:为集群中任意一个节点就行
步骤一:

>>> Performing Cluster Check (using node 192.168.1.138:6381)
M: c790b5f9584777ba8d9f96be5fe42b2efe646635 192.168.1.138:6381
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
S: 7599539245821b1a2e185439f3170b896b287106 192.168.1.138:6388
   slots: (0 slots) slave
   replicates ca77bc2a223c64a7af727b24172ae8f43d3e9b5a
S: b264b25c716863096d0c2fe39483130cbfeba894 192.168.1.138:6385
   slots: (0 slots) slave
   replicates f9200d36046d8325817c8014155e8f9950760da4
S: 33add5fdf6d9cc3eb8656c865403a34b237b4b73 192.168.1.138:6384
   slots: (0 slots) slave
   replicates 691e5855e8f274a6ea61dc95dbed89da87ed6053
S: d7bbc7bb0b501b421d527f6c302a8abe00aa535b 192.168.1.138:6386
   slots: (0 slots) slave
   replicates c790b5f9584777ba8d9f96be5fe42b2efe646635
M: f9200d36046d8325817c8014155e8f9950760da4 192.168.1.138:6383
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
M: ca77bc2a223c64a7af727b24172ae8f43d3e9b5a 192.168.1.138:6387
   slots: (0 slots) master
   1 additional replica(s)
M: 691e5855e8f274a6ea61dc95dbed89da87ed6053 192.168.1.138:6382
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096

继续阅读redis学习(10)—redis哈希槽扩容与缩小

redis学习(9)—redis集群扩容与缩小

1、准备
回顾,上一篇把6381变成fail,6386变成master
还原:6381重新变成了master,6386变成了slave
docker stop redis-node-6
docker start redis-node-6

2、查看集群信息
登录进容器
redis-cli --cluster check 192.168.1.138:6381

3、增加2台redis节点
mkdir -p /data/redis/share/redis-node-7
mkdir -p /data/redis/share/redis-node-8
docker create --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6387
docker create --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6388

继续阅读redis学习(9)—redis集群扩容与缩小

redis学习(8)—redis集群主从切换

集群环境为3主3从,安装参考《使用docker安装redis集群》

1、客户端验证
192.168.1.138:6381> set user:100 agan
-> Redirected to slot [9308] located at 192.168.1.138:6382
OK
192.168.1.138:6382> set user:200 alex
-> Redirected to slot [15628] located at 192.168.1.138:6383
OK
192.168.1.138:6383>

说明:
第一次执行,落到了第9308个槽号,节点是192.168.1.138:6381
第二次执行,落到了第15628个槽号,节点是192.168.1.138:6382
在集群环境里面,首先会去找槽号,然后再去找ip地址
并且执行完一个后,会轮询到下一个主节点

继续阅读redis学习(8)—redis集群主从切换

docker学习(10)—使用docker安装redis集群

1、创建容器,创建6个redis实例
docker create --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6381
docker create --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6382
docker create --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6383
docker create --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6384
docker create --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6385
docker create --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:5.0.7 --cluster-enabled yes --appendonly yes --port 6386

说明:
docker create:创建容器的命令,但不启动它
--name redis-node-1:容器的名字,例如:redis-node-1
--net host:docker网络,使用宿主机的IP和端口
--privileged=true:docker容器权限,获取宿主机root权限
-v /data/redis/share/redis-node-1:/data:容器的data目录,映射到宿主机/data/redis/share/redis-node-1
redis:5.0.7:redis镜像名称和版本号
--cluster-enabled yes:redis.conf的配置,开启redis集群
--appendonly yes:redis.conf的配置,开启数据持久化
--port 6381:redis.conf的配置,redis端口号

继续阅读docker学习(10)—使用docker安装redis集群

redis学习(7)—操作geohash命令

自redis 3.2开始,redis基于geohash和zset提供了地理位置相关功能
什么是Geohash
Geohash是一种地址编码,它能把二维的经纬度编码成一维的字符串。比如,世界之窗的编码是ws101xy1rp0
Redis Geo模块包含了以下6个命令:

1、GEOADD命令
将给定的位置对象(纬度、经度、名字)添加到指定的key
注:
1)这里我们采用的是中文存储,如果出现了乱码,redis命令的登录命令加上 –raw
例如:./redis-cli –raw
2)查看某个地址的经纬度,建议用http://www.gpsspg.com/maps.htm

115.99956025097654
39.8807058838189
天门山森林公园

115.98857392285154
38.94226425604525
白洋淀景区

继续阅读redis学习(7)—操作geohash命令

驾考科目一—知识点

1、机动车驾驶人造成事故后逃逸构成犯罪的,吊销驾驶证且多长时间不得重新取得驾驶证?
答案:终生
解析:
假一吊二撤三醉五逃终生
假一:提交虚假材料考驾照,一年内不得重新申请;
吊二:被吊销驾照后,二年内不得重新申领;
撤三:被撤销驾照后,三年内不得重新申领;
醉五:醉酒肇事,五年内不得重新申领;
逃终生:肇事逃逸者,终生不得重新申领;

2、现在已经没有违章和违规行为,“违反道路交通安全法”都是违法行为

3、驾驶机动车应当随身携带哪种证件?
答案:驾驶证
解析:
开车必须携带驾驶证

继续阅读驾考科目一—知识点

股市投资入门14—投资者常犯的21个错误

一定要避免下面这些关键错误:

1、当损失很小并处于合理的范围时,持股不动。在人类情感的作用下,大部分投资者本能上偏好小赔出局。由于不想承受损失,便空怀希望继续等待,直到亏损变得非常严重,不得不付出昂贵的代价。这是到目前为止,几乎所有投资者都犯过的最严重的错误之一:他们不明白,所有的普通股都是极具有投机性的,并能带来巨大的风险。你必须尽量减少每一个损失,无一例外。在过去45年中,我在全国各地的课堂上都会教学生这样一个准则:当股价低于买入价7%或8%时,立即进行止损。遵循这一简单的原则,你可以在股市汹涌的浪潮中生存下来,并能把握住未来很多良机。

2、在股价下跌时买进,却越陷越深。处于下跌过程中的股票看似很划算,因为它比几个月前要便宜很多。1999年年末,我认识的一个女士在施乐公司的股票突然下跌至股价新低时,以34美元的价格买进了一些,这笔交易看起来很便宜。一年以后,施乐的股价为6美元。为什么要试图接住一个垂直掉落的匕首呢?2000年,很多投资者采取了相同的策略,当思科公司的股价由82美元一路跌至50美元时进行买入,而该股票再也没能涨到50美元,即使在2003~2007年的牛市中也是如此。到了2009年1月,你只需出16美元就能买到一份思科的股票了。

继续阅读股市投资入门14—投资者常犯的21个错误