I have to store more than 100 millions of key-values in my HashMultiMap (key can have multiple values). Can anybody help me which one is faster for both storing and searching:
I would have a look at leveldb, because it claims to be faster than Kyoto Cabinet. Other interesting libraries are Kyoto Cabinet, and JDBM3.
Those are low level libraries (without support for relational queries or SQL). Some offer transactional support, but I'm not sure if you need it. Still, in-memory hash maps are faster.
I'd recommend Redis. It's more of a data structure store than the others (e.g. it supports maps and sets) and requires very little effort to get started with. It's incredibly simple to use and has a great Java API.
I'd start by looking at the functions here that allow you to associate a key with a group of values.