Im no authority on this, but if your'e living in a place where its legal to do so, carry a firearm. Despite what people in online forums tell you (lol), the caliber & capacity hardly matters in the real world. No one wants to get shot no matter the bullet, so don't be discouraged from carrying a lighter & more compact handgun. Guns are a effective deterrent first, lethal weapon second. A knife can be a good deterrent too, no one wants to get stabbed, even if the other person has a bigger knife. They might think twice and break off the attack. If it comes to an actual knife fight tho, your'e probably screwed. But so will be the other guy so better then nothing I guess. Carrying a knife in a place where an attacker is likely is carry a gun is probably inadvisable. I wouldn't carry a flashlight for self defense.
And of cause keep in mind that deterrence, no matter the weapon, often will not work on intoxicated/high people, who might not realize the threat or even see it as a challenge.