I have 5 of the plastic parts drawers like mdszy shows in post 2. I keep the most popular parts values in these drawers, in sequential order. Example: 10 ohm, 22 ohm,....1K, 10K,...47K, 100K, 220K, .001uF, .01uF,...1uF, 10uF, 22uF,...100uF, 220uF, 470uF, etc. The resistor and capacitor drawers hold both leaded and smd parts. Semiconductors are handled the same way, most popular discrete parts such as transistors and voltage regulators, most popular ICs. I do not keep any microprocessors in these drawers. I also have drawers with most popular hardware such as 4-40 in and 3 mm screws, spacers, washers, and nuts. Each drawer is labeled with contents. The cabinets came with plastic insert dividers so most resistors drawers have 2 values in them with the dividers in between. The cabinets tend to have common components in them, one cabinet for resistors, one for capacitors, one for semiconductors, etc. Since the hardware items are not very many, those get mixed in with other stuff in the misc cabinet.
All other parts are stored in boxes according to the type of part. Semiconductors in one box, resistors another, capacitors another, inductors another, and so on. There are a few misc boxes that store modules and items that I may only have a couple of. All purchases from suppliers that do not go in the plastic drawers are kept in their packaging inside the boxes. Each box is numbered and some items are in separate large bags in the boxes. As an example, I keep leaded capacitors and smd capacitors in separate larger bags. The bags are marked with sub-numbers. That is, one of my capacitor boxes is number 3. Inside the number 3 box, are large bags marked 3-1 and 3-2. The 3-1 bag has leaded capacitors and 3-2 has smd capacitors. I have 9 different spreadsheets that keep track of what part is in what box.
I implemented all of this about 10 years ago when I found out I kept ordering parts and a few days later found out I had several of the items already in a box. It took me about 2 weeks to go through and organize everything in the boxes and enter it all into the spreadsheets. Ever since then as parts come in, they are put where they belong and the spreadsheets updated. Before I place an order for parts, I simply check the spreadsheets and cabinets to see if I already have the parts in stock. It was initially a lot of work but has paid off.
I also have several larger boxes on the shelves to store stuff such as larger transformers, large electrolytics, circuit boards removed from equipment (for parts salvaging), wire, etc. The ends of the boxes are marked with their contents.
I have used this system for so long that I pretty much know from memory which cabinet or box to go to when I need something. Occasionally I do have to scan the cabinets and boxes when my memory fails me.