postgresql – Is there metrics / tools / techniques to monitor the cache correct use?

Figure a system with 700 different queries reaching about 25 tables.
It seems there is too much different queries, and they should be factorized.
Can this kind of work be useful?

How to check if some queries are not using the cache enough?
Should I just add RAM to make all queries use cache correctly?

It must exists many guidelines about database structure and queries design.