vlambda博客
学习文章列表

redis、awk、连续子数组的最大和、找到字符串/数组中第一个只出现一次的字母

1、redis优点:
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储Redis支持数据的备份,即master-slave模式的数据备份应用场景:
会话缓存(Session Cache)最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。
全页缓存(FPC)除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。
队列Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。
排行榜/计数器Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。
发布/订阅
2、AWK是一种处理文本文件的语言,是一个强大的文本分析工具awk [选项参数] 'script' var=value file(s)awk [选项参数] -f scriptfile var=value file(s)log.txt文本内容如下:
2 this is a test3 Are you like awkThis's a test10 There are orange,apple,mongo# 每行按空格或TAB分割,输出文本中的1、4项 $ awk '{print $1,$4}' log.txt --------------------------------------------- 2 a 3 like This's 10 orange,apple,mongo # 格式化输出 $ awk '{printf "%-8s %-10s\n",$1,$4}' log.txt --------------------------------------------- 2 a 3 like This's 10 orange,apple,mongo 3、连续子数组的最大和 def function(lists): max_sum = lists[0] pre_sum = 0 for i in lists: if pre_sum < 0: pre_sum = i else: pre_sum += i if pre_sum > max_sum: max_sum = pre_sum return max_sum

def main(): lists = [6, -3, 1, -2, 7, -15, 1, 2, 2,30] print(function(lists))

if __name__ == "__main__": main() 4、找到字符串/数组中第一个只出现一次的字母stra = ['a','s','s','d']def searFisrt(a): dica = {} for i in range(len(a)): if a[i] in dica: dica[a[i]] +=1 else: dica[a[i]] = 1 print(dica) for j in dica: if dica[j] == 1: return j
print(searFisrt(stra))