The aim of this survey is to review some recent developements in devising efficient preconditioners for sequences of linear systems A x = b. Such a problem arise in many scientific applications, such as discretization of transient PDEs, solution of eigenvalue problems, (Inexact) Newton method applied to nonlinear systems, rational Krylov methods for computing a function of a matrix. Full purpose preconditioners such as the Incomplete Cholesky (IC) factorization or approximate inverses are aimed at clustering eigenvalues of the preconditioned matrices around one. In this paper we will analyze a number of techniques of updating a given IC preconditioner (which we denote as P0 in the sequel) by a low-rank matrix with the aim of further improving this clustering. The most popular low-rank strategies are aimed at removing the smallest eigenvalues (deflation) or at shifting them towards the middle of the spectrum. The low-rank correction is based on a (small) number of linearly independent vectors whose choice is crucial for the effectiveness of the approach. In many cases these vectors are approximations of eigenvectors corresponding to the smallest eigenvalues of the preconditioned matrix P0 A. We will also review some techniques to efficiently approximate these vectors when incorporated within a sequence of linear systems all possibly having constant (or slightly changing) coefficient matrices. Numerical results concerning sequences arising from discretization of linear/nonlinear PDEs and iterative solution of eigenvalue problems show that the performance of a given iterative solver can be very much enhanced by the use of low-rank updates.