Rui  Silva

Rui Silva

1656777600

Introdução ao Memcached usando Python

O Memcached é um sistema de cache distribuído de alto desempenho. É um armazenamento de dados de valor-chave na memória, o que o torna um tipo de banco de dados NoSQL . O Memcached é usado por gigantes da tecnologia como Facebook, Twitter, Instagram e Netflix. No meu artigo anterior, expliquei o Redis, que é outro armazenamento de dados de valor-chave na memória que pode ser usado para fins de armazenamento em cache. Este artigo explicará como conectar e usar o Memcached em python.

Instalando o Memcached no Windows

O Memcached não é oficialmente suportado no Windows. No entanto, você pode instalá-lo configurando o Windows Subsystem para Linux 2 e configurando-o. Como alternativa, você pode executar o Memcached em um contêiner usando o Docker, que abordarei neste artigo. O primeiro passo é instalar o Docker em sua máquina Windows. Você pode baixar o Docker Desktop aqui . O processo de instalação é bastante simples e direto. Agora que temos o Docker em nossa máquina, digite o seguinte comando em um prompt de comando para buscar a imagem Redis do Docker Hub, que pode ser usada para criar e executar um contêiner.

docker pull memcached

Feito isso, a terceira etapa é iniciar um contêiner usando a imagem do Memcached que baixamos anteriormente.

Memcached

Aqui, clique no botão 'EXECUTAR'.

Contêiner do Memcached

Bootcamp Imersivo de Ciência de Dados

Um programa que treina você para ser um cientista de dados pronto para o setor em 240 dias Reserve seus lugares!

Memcached

Parabéns, agora você iniciou com sucesso o servidor Redis em sua máquina.

Instalando o Pymemcache

Para conectar e usar o Memcached em python, usaremos um módulo python chamado pymemcache. Ele pode ser instalado executando o seguinte comando no prompt de comando.

pip install pymemcache

Agora que temos tudo pronto, vamos colocar a mão na massa e mergulhar na parte de programação.

Usando o Pymemcache

Antes de realizar qualquer operação CRUD, primeiro precisamos nos conectar ao servidor Memcached. Vamos em frente e nos conectar ao nosso servidor Memcached.

from pymemcache.client import base
client = base.Client(('localhost', 11211))

Agora que nos conectamos com sucesso ao servidor Memcached, vamos começar a realizar operações CRUD simples.

Para definir um par chave-valor, podemos usar a função “set” ou a função “add” que aceita a chave e o valor como parâmetro. Observe que a chave deve ser sempre do tipo de dados string ou bytes.

client.set('hello', 'world')

Para obter o valor de uma chave armazenada no servidor Memcached, podemos usar a função “get” que aceita o nome da chave como parâmetro. A resposta está sempre em bytes e, portanto, a resposta deve ser decodificada para string por nós manualmente, o que é bastante fácil.

client.get('hello') # this always returns bytes
b'world'

Para converter bytes em string, podemos simplesmente decodificar os bytes no formato 'UTF-8'.

client.get('hello').decode("utf-8") # convert bytes to string
'world'

Por padrão, os dados armazenados não expiram. Como o Memcached é um armazenamento de dados na memória, o armazenamento é limitado e os dados podem ser liberados devido à memória insuficiente. Podemos definir a expiração de um par chave-valor usando a função “add” especificando o tempo em segundos. O tempo de expiração deve ser cuidadosamente decidido com base no tipo de aplicativo que você está construindo.

client.add(key="lorem", value="ipsum", expire=10) # expire after 10 seconds
client.get('lorem')
'ipsum'

Se tentarmos acessar a chave após 10 segundos, não obteremos nenhuma resposta, pois a chave teria sido excluída do banco de dados.

Podemos definir vários pares de valores-chave usando a função “set_multi”, que aceita os vários pares de valores-chave como um conjunto de dados de dicionário. Ele também aceita o parâmetro “expire” para que o par chave-valor expire e libera espaço para novos dados no servidor Memcached.

client.set_multi({"Ram": 22, "Vishnu": 21, "Sanjay": 17},expire=200)
client.get('Ram')
b'22'

Agora vamos tentar aumentar o valor da chave “Ram”. Podemos usar a função “incr” para realizar uma operação de adição a um valor numérico no Memcached.

client.incr('Ram', value=5)
client.get('Ram')
b'27'

Da mesma forma, podemos usar a função “decr” para realizar uma operação de subtração de um valor numérico no Memcached.

client.decr('Ram', value=2)
client.get('Ram')
b'25'

Todos os valores, exceto valores numéricos em pares chave-valor, seriam convertidos em bytes de string antes de armazenar e, portanto, obteríamos apenas uma string como resposta e não a estrutura de dados original como tal, o que pode ser um problema.

client.add(key="languages", value=['python', 'C++', 'C'])
client.get('languages').decode('utf-8')
"['python', 'C++', 'C']"

Aqui, podemos ver que armazenamos uma lista no servidor Memcached, mas quando tentamos buscar esses dados, recebemos uma string como resposta e não uma lista. Para garantir que também armazenamos o tipo de dados, além de apenas strings, podemos usar técnicas de serialização e desserialização usando módulos como JSON ou pickle. Usarei JSON para explicar como as técnicas de serialização e desserialização podem ser usadas para armazenar e extrair os dados com o mesmo tipo de dados.

Vamos primeiro tentar armazenar um objeto aninhado no servidor Memcached e ver qual resposta obtemos para que possa ser comparada com a resposta obtida após realizar a serialização e desserialização usando JSON.

personal_data = {
    'name': 'Prakash',
    'age': 34,
    'programming_languages': ['python', 'C#', 'java'],
    'address':{
        'flat_no': 177,
        'area': 'Velachery',
        'pincode': 600042
    }
}
client.set('prakask_personal_data', personal_data)
client.get('prakask_personal_data').decode("utf-8")
"{'name': 'Prakash', 'age': 34, 'programming_languages': ['python', 'C#', 'java'], 'address': {'flat_no': 177, 'area': 'Velachery', 'pincode': 600042}}"

Se tentarmos acessar a propriedade name, obteremos um erro, pois a resposta é uma string e não um dicionário. Agora vamos usar JSON para stringificar os dados e depois armazená-los no Memcached e extrair e desserializar usando o mesmo JSON.

import json
personal_data = {
    'name': 'Prakash',
    'age': 34,
    'programming_languages': ['python', 'C#', 'java'],
    'address':{
        'flat_no': 177,
        'area': 'Velachery',
        'pincode': 600042
    }
}
client.set('prakask_personal_data', json.dumps(personal_data))
data = json.loads(client.get('prakask_personal_data').decode("utf-8"))
print(data){'name': 'Prakash',
 'age': 34,
 'programming_languages': ['python', 'C#', 'java'],
 'address': {'flat_no': 177, 'area': 'Velachery', 'pincode': 600042}}

Agora, vamos tentar acessar a propriedade area presente dentro da propriedade address e verificar se estamos recebendo algum erro ou não.

data['address']['area']
'Velachery'

Podemos ver que obtemos a resposta correta.

Um sistema de cache é apenas uma maneira de acelerar seu aplicativo. Bancos de dados SQL tradicionais, como MySQL, Oracle e novos bancos de dados NoSQL, como MongoDB, armazenam dados no disco. As operações realizadas no disco são geralmente mais lentas quando comparadas às operações realizadas na memória ou na RAM. Como tecnologias como Redis e Memcached são armazenamentos de dados na memória, as operações são extremamente rápidas, mas a desvantagem dessas tecnologias é que a RAM é limitada e não pode ser usada para armazenar todas as informações. Para tornar o aplicativo rápido, tecnologias como Redis e Memcached são usadas juntamente com bancos de dados completos apropriados, como MySQL, MongoDB, etc. Vamos ver como o Memcached pode ser usado junto com outro banco de dados em aplicativos.

Digamos que você defina um par chave-valor no servidor Memcached e esteja tentando acessá-lo depois de um tempo. Suponha que a chave expirou no servidor Memcached. Nesse caso, tentamos acessar os dados de nosso banco de dados tradicional, digamos MySQL. Todos os dados são persistentes e não expiram, ao contrário do Memcached.

client.add('analytics', 'vidhya', expire=15)
def fetch_from_mysql(key= ''): 
	data = ...  # fetch from MySQL server
	return data
data = client.get('analytics')
if not data
	# fetch from MySQL as the key is not found in the Memcached server
	data = fetch_from_mysql('analytics')
	print(data)
else: print(data)

Este é um exemplo simples para mostrar como os sistemas de cache podem ser projetados para funcionar junto com bancos de dados completos em aplicativos.

Conclusão

Neste artigo, discutimos e cobrimos o seguinte:

  • O que é Memcached?
  • Instalando o Docker no Windows
  • Executando o Memcached em um contêiner docker
  • Conectando-se ao Memcached usando o Pymemcache
  • Executando operações CRUD simples usando o Pymemcache
  • Mecanismo de cache usando Memcached em aplicativos

As funções discutidas neste artigo são necessárias para entender e executar operações CRUD básicas no Memcached, mas há muitas funções diferentes prontamente disponíveis. Mecanismos de cache estão presentes em quase todos os aplicativos e devemos entender e aprender os fundamentos do cache para construir aplicativos prontos para produção. O Memcached foi projetado para funcionar apenas como um servidor de cache, enquanto seu concorrente Redis foi desenvolvido para resolver vários casos de uso. O Redis é single-thread, enquanto o Memcached é multi-thread, o que faz com que o Memcached tenha um desempenho melhor do que o Redis quando o tamanho dos dados é grande. Para saber mais sobre o Redis, leia este artigo.

É isso para este artigo. Espero que você tenha gostado de ler este artigo e aprendido algo novo. Obrigado pela leitura e bom aprendizado! 

 Fonte: https://www.analyticsvidhya.com/blog/2022/06/introduction-to-memcached-using-python/

#python 

What is GEEK

Buddha Community

Introdução ao Memcached usando Python
Ray  Patel

Ray Patel

1619510796

Lambda, Map, Filter functions in python

Welcome to my Blog, In this article, we will learn python lambda function, Map function, and filter function.

Lambda function in python: Lambda is a one line anonymous function and lambda takes any number of arguments but can only have one expression and python lambda syntax is

Syntax: x = lambda arguments : expression

Now i will show you some python lambda function examples:

#python #anonymous function python #filter function in python #lambda #lambda python 3 #map python #python filter #python filter lambda #python lambda #python lambda examples #python map

Shardul Bhatt

Shardul Bhatt

1626775355

Why use Python for Software Development

No programming language is pretty much as diverse as Python. It enables building cutting edge applications effortlessly. Developers are as yet investigating the full capability of end-to-end Python development services in various areas. 

By areas, we mean FinTech, HealthTech, InsureTech, Cybersecurity, and that's just the beginning. These are New Economy areas, and Python has the ability to serve every one of them. The vast majority of them require massive computational abilities. Python's code is dynamic and powerful - equipped for taking care of the heavy traffic and substantial algorithmic capacities. 

Programming advancement is multidimensional today. Endeavor programming requires an intelligent application with AI and ML capacities. Shopper based applications require information examination to convey a superior client experience. Netflix, Trello, and Amazon are genuine instances of such applications. Python assists with building them effortlessly. 

5 Reasons to Utilize Python for Programming Web Apps 

Python can do such numerous things that developers can't discover enough reasons to admire it. Python application development isn't restricted to web and enterprise applications. It is exceptionally adaptable and superb for a wide range of uses.

Robust frameworks 

Python is known for its tools and frameworks. There's a structure for everything. Django is helpful for building web applications, venture applications, logical applications, and mathematical processing. Flask is another web improvement framework with no conditions. 

Web2Py, CherryPy, and Falcon offer incredible capabilities to customize Python development services. A large portion of them are open-source frameworks that allow quick turn of events. 

Simple to read and compose 

Python has an improved sentence structure - one that is like the English language. New engineers for Python can undoubtedly understand where they stand in the development process. The simplicity of composing allows quick application building. 

The motivation behind building Python, as said by its maker Guido Van Rossum, was to empower even beginner engineers to comprehend the programming language. The simple coding likewise permits developers to roll out speedy improvements without getting confused by pointless subtleties. 

Utilized by the best 

Alright - Python isn't simply one more programming language. It should have something, which is the reason the business giants use it. Furthermore, that too for different purposes. Developers at Google use Python to assemble framework organization systems, parallel information pusher, code audit, testing and QA, and substantially more. Netflix utilizes Python web development services for its recommendation algorithm and media player. 

Massive community support 

Python has a steadily developing community that offers enormous help. From amateurs to specialists, there's everybody. There are a lot of instructional exercises, documentation, and guides accessible for Python web development solutions. 

Today, numerous universities start with Python, adding to the quantity of individuals in the community. Frequently, Python designers team up on various tasks and help each other with algorithmic, utilitarian, and application critical thinking. 

Progressive applications 

Python is the greatest supporter of data science, Machine Learning, and Artificial Intelligence at any enterprise software development company. Its utilization cases in cutting edge applications are the most compelling motivation for its prosperity. Python is the second most well known tool after R for data analytics.

The simplicity of getting sorted out, overseeing, and visualizing information through unique libraries makes it ideal for data based applications. TensorFlow for neural networks and OpenCV for computer vision are two of Python's most well known use cases for Machine learning applications.

Summary

Thinking about the advances in programming and innovation, Python is a YES for an assorted scope of utilizations. Game development, web application development services, GUI advancement, ML and AI improvement, Enterprise and customer applications - every one of them uses Python to its full potential. 

The disadvantages of Python web improvement arrangements are regularly disregarded by developers and organizations because of the advantages it gives. They focus on quality over speed and performance over blunders. That is the reason it's a good idea to utilize Python for building the applications of the future.

#python development services #python development company #python app development #python development #python in web development #python software development

Art  Lind

Art Lind

1602968400

Python Tricks Every Developer Should Know

Python is awesome, it’s one of the easiest languages with simple and intuitive syntax but wait, have you ever thought that there might ways to write your python code simpler?

In this tutorial, you’re going to learn a variety of Python tricks that you can use to write your Python code in a more readable and efficient way like a pro.

Let’s get started

Swapping value in Python

Instead of creating a temporary variable to hold the value of the one while swapping, you can do this instead

>>> FirstName = "kalebu"
>>> LastName = "Jordan"
>>> FirstName, LastName = LastName, FirstName 
>>> print(FirstName, LastName)
('Jordan', 'kalebu')

#python #python-programming #python3 #python-tutorials #learn-python #python-tips #python-skills #python-development

Art  Lind

Art Lind

1602666000

How to Remove all Duplicate Files on your Drive via Python

Today you’re going to learn how to use Python programming in a way that can ultimately save a lot of space on your drive by removing all the duplicates.

Intro

In many situations you may find yourself having duplicates files on your disk and but when it comes to tracking and checking them manually it can tedious.

Heres a solution

Instead of tracking throughout your disk to see if there is a duplicate, you can automate the process using coding, by writing a program to recursively track through the disk and remove all the found duplicates and that’s what this article is about.

But How do we do it?

If we were to read the whole file and then compare it to the rest of the files recursively through the given directory it will take a very long time, then how do we do it?

The answer is hashing, with hashing can generate a given string of letters and numbers which act as the identity of a given file and if we find any other file with the same identity we gonna delete it.

There’s a variety of hashing algorithms out there such as

  • md5
  • sha1
  • sha224, sha256, sha384 and sha512

#python-programming #python-tutorials #learn-python #python-project #python3 #python #python-skills #python-tips

How To Compare Tesla and Ford Company By Using Magic Methods in Python

Magic Methods are the special methods which gives us the ability to access built in syntactical features such as ‘<’, ‘>’, ‘==’, ‘+’ etc…

You must have worked with such methods without knowing them to be as magic methods. Magic methods can be identified with their names which start with __ and ends with __ like init, call, str etc. These methods are also called Dunder Methods, because of their name starting and ending with Double Underscore (Dunder).

Now there are a number of such special methods, which you might have come across too, in Python. We will just be taking an example of a few of them to understand how they work and how we can use them.

1. init

class AnyClass:
    def __init__():
        print("Init called on its own")
obj = AnyClass()

The first example is _init, _and as the name suggests, it is used for initializing objects. Init method is called on its own, ie. whenever an object is created for the class, the init method is called on its own.

The output of the above code will be given below. Note how we did not call the init method and it got invoked as we created an object for class AnyClass.

Init called on its own

2. add

Let’s move to some other example, add gives us the ability to access the built in syntax feature of the character +. Let’s see how,

class AnyClass:
    def __init__(self, var):
        self.some_var = var
    def __add__(self, other_obj):
        print("Calling the add method")
        return self.some_var + other_obj.some_var
obj1 = AnyClass(5)
obj2 = AnyClass(6)
obj1 + obj2

#python3 #python #python-programming #python-web-development #python-tutorials #python-top-story #python-tips #learn-python