GVKun编程网logo

Laravel-删除所有包含特定字符串的缓存/ Redis键(laravel软删除)

51

最近很多小伙伴都在问Laravel-删除所有包含特定字符串的缓存/Redis键和laravel软删除这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展bash–SED:如何发送一条包

最近很多小伙伴都在问Laravel-删除所有包含特定字符串的缓存/ Redis键laravel软删除这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展bash – SED:如何发送一条包含特定字符串的行? (内联编辑)、c# – 使用数组检查字符串是否包含特定字符串、c#删除字符串的所有包装div、Linux 查找当前目录下 包含特定字符串 的所有文件等相关知识,下面开始了哦!

本文目录一览:

Laravel-删除所有包含特定字符串的缓存/ Redis键(laravel软删除)

Laravel-删除所有包含特定字符串的缓存/ Redis键(laravel软删除)

是否可以使用Laravel擦除Redis中与特定字符串匹配的所有键?例如,如果我想忘记包含单词product的键,它将忘记以下键:

laravel:896235872385237588327582370375acaca235325:产品列表laravel:896235872385237588327582370375acaca235325:产品类别

我会在redis服务器上运行它,但是我想知道是否可以通过Laravel直接运行更好的东西:

redis-cli keys "*" | grep "products" | xargs redis-cli DEL

答案1

小编典典

为什么不:

public function forget($key_name){    $redis = Cache::getRedis();    $keys = $redis->keys("*$key_name*");    $count = 0;    foreach ($keys as $key) {        $redis->del($key);        $count++;    }          return $count;  }

对于生产环境,应使用SCAN光标[MATCH模式] [COUNT计数]代替“键”

http://redis.io/commands/scan

因为您不想在Redis中有成千上万个键的情况下耗尽内存,也不想通过使用“键”来阻止整个Redis实例。

bash – SED:如何发送一条包含特定字符串的行? (内联编辑)

bash – SED:如何发送一条包含特定字符串的行? (内联编辑)

文件中的行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2002 -j ACCEPT

注释掉我们说的包含的行

2001

我可以简单的运行这个SED命令:

sed -i '/ 2001 /s/^/#/' file

但现在我怎么还原?

在同一行中取消注释?

我试过了

sed -i '/ 2001 /s/^//' file

那不行。

尝试这个sed命令,
sed -i '/^#.* 2001 /s/^#//' file

c# – 使用数组检查字符串是否包含特定字符串

c# – 使用数组检查字符串是否包含特定字符串

我是c#的新手.我想知道一个字符串,如用户名是否包含特定的单词.我想从数组中获取这些特定的单词.这是一个例子
Console.Write("Name: ");
_name = Console.ReadLine();
name = Program.ProperNameMethod( _name);
Console.WriteLine();

string[] badWordArray = { "aBadword1","aBadWord2","aBadWord3" };

if (!string.IsNullOrEmpty(name) // Would like to check for the badwordarray aswell)

(更新)

谢谢大家,但是我学习c#只用了大约一个月就无法覆盖lambda或regex了.我稍后会看一下这些代码.

解决方法

您可能需要不区分大小写的验证:
string[] badWordArray = { "aBadword1","aBadWord3" };

Boolean isBadWord = badWordArray
  .Any(badWord => name.IndexOf(badword,StringComparison.OrdinalIgnoreCase) >= 0);

或者,如果您验证当前的文化

Boolean isBadWord = badWordArray
  .Any(badWord => name.IndexOf(badWord,StringComparison.CurrentCultureIgnoreCase) >= 0);

Paranoic案例涉及使用这样的正则表达式:

string[] badWordArray = { "aBadword1","aBadWord3" };

   // Nasty user wants to be rude but pass typical filters...
   String name = "A- Bad..WORD..1 !!!";

   String line = Regex.Replace(name,@"\W","");

   Boolean isBadWord = badWordArray
     .Any(badWord => line.IndexOf(badWord,StringComparison.OrdinalIgnoreCase) >= 0);

c#删除字符串的所有包装div

c#删除字符串的所有包装div

如果您只想删除字符串开头和结尾的 div 标签,保留中间的 div 标签以及任何其他 HTML 标签,那么这应该可行:

    private static string RemoveWrapingDiv(string originalString)
    {
        var openingTag = "<div>";
        var closingTag = "</div>";
        var processedString = originalString;
        while (processedString.StartsWith(openingTag))
        {
            processedString = processedString.Substring(openingTag.Length,processedString.Length - openingTag.Length - closingTag.Length);
        }
        return processedString;
    }
,

假设 HTML 是有效的,我想出了以下内容:

public void test()
{
    string result = "<div><div><div><div><p>This is a test</p><ul><li>a</li><li><div>b</div></li><li>c</li></ul></div></div></div></div>";

    while (true)
    {
        if (result.StartsWith(@"<div>") && result.EndsWith(@"</div>"))
        {
            result = result.Remove(0,5);
            int i = result.LastIndexOf(@"</div>",StringComparison.Ordinal);
            result = result.Remove(i,6);
        }
        else
        {
            break;
        }
    }
}

Linux 查找当前目录下 包含特定字符串 的所有文件

Linux 查找当前目录下 包含特定字符串 的所有文件

使用 Linux 经常会遇到这种情况:只知道文件中包含某些特定的字符串,但是不知道具体的文件名。需要根据“特定的字符串”反向查找文件。

 

示例(路径文件如下):

./miracle/luna/a.txt

 

a.txt 文件中的内容如下

Hello, World!

 

查找当前目录下,包含“Hello”字符串的所有文件

【方式1】(其中,r 表示递归n 表示查询结果显示行号):

grep -rn "Hello" ./

效果如下:

 

【方式2】

find ./ -name "*.*" | xargs grep  "Hello"

效果如下:

 

【方式3】-l 表示只显示文件名)

find . | xargs grep -ri "Hello"

find . | xargs grep -ri "Hello" -l

效果如下:

 

【方式4 】(推荐,更为通用!)

如果不知道文件所在的大致目录知道文件的类型(例如文本类型 txt),可以在root根目录 / 下根据特定字符串进行查找:

find / -type f -name "*.txt" | xargs grep "Hello"

效果如下:

 

 

PS:

前面三种方式使用场景:知道文件的大概目录(缩小查找范围)

最后一种方式,更为通用,最好知道文件的类型。

关于Laravel-删除所有包含特定字符串的缓存/ Redis键laravel软删除的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于bash – SED:如何发送一条包含特定字符串的行? (内联编辑)、c# – 使用数组检查字符串是否包含特定字符串、c#删除字符串的所有包装div、Linux 查找当前目录下 包含特定字符串 的所有文件的相关信息,请在本站寻找。

本文标签: