测试下go使用连接池连接redis,抓包看链路情况,压力等
-------------------------------------------------------------------------------------
安装,make & make install 默认是安装到/usr/local/bin
make install PREFIX=/usr/local/redis
或者
sudo yum install epel-release -y
sudo yum install redis -y
1. 非本机访问
protected-mode yes 修改为no
注释掉 bind 127.0.0.1
后台启动redis,指定配置文件 ./redis-server redis.conf&
设置开机自动启动
cd /usr/lib/systemd/system
vi redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
User=prouser
Group=rd
Type=forking
ExecStart=/usr/bin/redis-server /usr/bin/redis.conf
ExecStop=/usr/bin/redis-cli shutdown
Restart=on-failure
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload # 重载配置
systemctl enable redis # 设置开机自启动
systemctl disable redis # 取消开机自启动
systemctl start redis # 开启
systemctl stop redis # 关闭
2.Redis DeskTop Manager
Append Only File AOF
3.命令:
set my 12
incr my //命令每执行一次增加1
hash 使用hash来模拟二维数组(二维表)结构
hash的key还可以是string
显示所有的key keys xxx*通配符
批量删除key redis-cli -a password keys "ml_account_s_*" | xargs redis-cli -a password del
4.主从备份
在从redis配置文件中加入 slaveof 192.168.1.11 6379
默认从服务器是只读的 slave-read-only yes
5.集群搭建
安装ruby环境,需要2.3以上
yum install centos-release-scl-rh
yum install rh-ruby23 -y
scl enable rh-ruby23 bash
ruby -v
gem install redis
还要在防火墙中开放16379端口
firewall-cmd --zone=public --add-port=16379/tcp --permanent
firewall-cmd --reload
go操作redis
可以使用redigo包
pub/sub订阅
//订阅
func main(){
c, err := redis.Dial("tcp", "192.168.160.131:6379")
if err != nil {
fmt.Println(err)
return
}
defer c.Close()
psc := redis.PubSubConn{Conn:c}
psc.Subscribe("example")
for {
switch v := psc.Receive().(type) {
case redis.Message:
fmt.Printf("%s: message: %s\n", v.Channel, v.Data)
case redis.Subscription:
fmt.Printf("%s: %s %d\n", v.Channel, v.Kind, v.Count)
case error:
return
}
}
}
//pub很简单
c.Do("PUBLISH", "example", “pubtest”)