Injectivity and surjectivity are only redundant if you're talking about functions whose domain has the same dimension/cardinality as its co-domain. For example, most functions from one variable calculus map real number to real numbers. An example of a function which maps to a set of a different cardinality is the projection function which, for example, maps elements of a two-dimensional space into a one dimensional space. In fact, projections are good examples of functions which are surjective, but not injective. For example, the projection onto the x-axis:
f: R2 -> R | (x,y) -> x
is surjective, but it is not injective. An example of a function which is injective but not surjective would be a map from a one-dimensional space to a two-dimensional space:
g: R -> R2 | x -> (x,0)