query cache hit value is not changing in my database
You have two things running into each other

Issue #1 : Differing Queries
Issue #2 : InnoDB Storage Engine

Issue #1 : Differing Queries
Look at your three queries
select * from drugs_info limit 1000; 
select * from drugs_info limit 10000; 
select * from drugs_info limit 15000;

Each query stores a unique result (if the results are stored). If the results are too big (as in the case of the second and third queries), the result sets must be retrieved again.
You could potentially solve this with a bigger query cache, which must be big enough to hold each query's result set. This leads us into ...
Issue #2 : InnoDB Storage Engine
Unfortunately, the InnoDB Storage Engine likes to play traffic cop with the query cache. I had discussed this before in my answer to Is the overhead of frequent query cache invalidation ever worth it? where I learned this pages 213-215 in the book (Second Edition)

If you really want the query cache, you have to meticulously set the query cache size to suit your needs. In almost all cases, it is best to set query_cache_size to 0 when dealing with InnoDB.
First, add this to my.cnf
[mysqld]
query_cache_size=0

Then, run this
mysql&gt; SET GLOBAL query_cache_size = 0;

and you should be all set.
Give it a Try !!!