drinke9 发布的文章

电商系统中的搜索,常用的Mysql等关系型数据库无法应对。记录下使用Elasticsearch的过程。

本文中的软件运行环境Debain系统

安装前的准备工作: 新建一个非root用户!并使用此用户操作接下来步骤。

  1. 导入Elasticsearch PGP密钥

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  2. 下载Debian 包(文中的版本为7.3.1)

这种下载方式目前算是比较快的了。。也不需要挂代理。这种方式默认下载了OpenJDK包。不需要额外安装java,如果需要特殊配置可以看文档

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.1-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.1-amd64.deb.sha512
shasum -a 512 -c elasticsearch-7.3.1-amd64.deb.sha512
sudo dpkg -i elasticsearch-7.3.1-amd64.deb
  1. 设置开启启动

    sudo /bin/systemctl daemon-reload
    sudo /bin/systemctl enable elasticsearch.service
    
    #elasticsearch 开关命令
    sudo systemctl start elasticsearch.service
    sudo systemctl stop elasticsearch.service

以上的安装方式,安装的配置文件在/etc/elasticsearch/etc/default/elasticsearch中。/usr/share/elasticsearch/bin是elasticsearch的命令文件夹。/var/share/log/elasticsearch是存储日志文件夹

  1. 安装ik分词器plugin(安装完成之后记得重启)

    /usr/share/elasticsearch/bin/elasticsearch-plugin install  https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.1/elasticsearch-analysis-ik-7.3.1.zip

以下为老版本安装方式.

安装JDK

新版本7+集成了Java运行环境,所以这里略过...

安装Elasticsearch

下载安装包

  • Linux

    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.1-linux- 
    x86_64.tar.gz
  • Mac

    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.1-darwin-x86_64.tar.gz

解压

tar -xvf elasticsearch-7.3.1-linux-x86_64.tar.gz

启动

cd elasticsearch-7.3.1/bin
./elasticsearch     # 加上 -d 参数后台运行

安装ik分词器

cd elasticsearch-7.3.1/bin
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.1/elasticsearch-analysis-ik-7.3.1.zip

Reference

查找文本中的字符串将字符串替换为想要的文本

sed -i "s/DB_HOST/DB_MY_HOST/g" .env

.env文件中的DB_HOST替换为DB_MY_HOST

将目标行替换为想要的文本

sed -i "/DB_DATABASE/c\DB_DATABASE=bingo_db/ .env

.env中的包含DB_DATABASE行替换为DB_DATABASE=bingo_db

以上两个方法都可以修.env文件中的某个配置项、第二种使用c\行替换比较方便

记一次撤销远程分支的提交

将本地commit提交到远程分支,发现这次的提交不需要了,可以通过回滚操作来撤销这次的提交。

如果是公共分支则需要注意

步骤

获取commit id

git reflog 查看commit提交记录找到需要回滚到的那个提交commit id,这里假设commit idd5c5e7f92.

如果是上一次提交则可以使用HEAD.

回滚自己单独的分支

git reset --hard                     #回滚上一次提交 等于 git reset --hard HEAD
git reset --hard d5c5e7f92           #回滚到d5c5e7f92

回滚公共分支

git revert HEAD                     #撤销最近一次提交
git revert HEAD~1                   #撤销上上次的提交,注意:数字从0开始
git revert d5c5e7f92                #撤销d5c5e7f92这次提交

将回滚推送至远程分支

git push origin HEAD:<your-origin-branch>

Reference

参考链接

key

EXISTS 判断一个key是否存在.
expire 对key设置生存时间,同时也可以刷新key的生存时间
expireat 使用Unix时间戳设置key的生存时间
persist 移除key的生存时间、将存在的key设置永不过期
ttl 查看key的生存时间、pttl 以毫秒为单位返回key剩余时间
migrate 在两个redis实例中执行原子性的迁移:使用dump序列化、在使用restore反序列化
move 将key移动到其他db(库)中
type 返回key值存储的类型








- 阅读剩余部分 -