I think judy arrays are intended to be fairly cache-friendly, though they assume a particular cache line size (64 bits?).
It might also be interesting to look into the HAT trie and other cache-friendly data structures. A number of interesting papers on HAT tries can be found at their author's homepage,
http://www.naskitis.com/. Not sure how well HAT tries handle small sets of strings, but the burst tries they are based on supposedly do quite well -- see
http://crpit.com/confpapers/CRPITV4Heinz.pdf.