加载中
心路独舞 2018/11/21 11:13 发布了新博客:
心路独舞 2018/11/21 11:11 发布了新博客:
心路独舞 2018/10/26 13:48 发布了新博客:

看需求

@melon_jj
Redis缓存是针对于业务数据缓存还是对数据库数据缓存呢??

这个问题好纠结,让我无法回答你。。。。。

@melon_jj
redis作为数据库的缓存,但redis不支持sql查询?如何解决?

 /// <summary>
        /// 生成唯一ID
        /// </summary>
        /// <returns></returns>
        internal static string BuildUniqueId(int digits)
        {
            return
                new Random(Guid.NewGuid().GetHashCode() + int.Parse(DateTime.Now.ToString("fffff"))).Next((int)Math.Pow(10, digits)).ToString(CultureInfo.InvariantCulture).PadRight(digits, '0');
        }

 


        private static List<int> NewMethod1()
        {
            List<int> listInt = new List<int>();
            for (int i = 0; i < 100000; i++)
            {
                int rdom = 0;
                Random random = new Random(Guid.NewGuid().GetHashCode() + unchecked((int)DateTime.Now.Ticks + int.Parse(DateTime.Now.ToString("fffff"))));
                rdom = random.Next((int)Math.Pow(10, 6));
                while (listInt.Contains(rdom))
                {
                    rdom = random.Next((int)Math.Pow(10, 6));
                }
                listInt.Add(rdom);

                //rdom = Int32.Parse(rdom.ToString().PadLeft(6, '1').ToString());
            }
            //= "JR" + DateTime.Now.ToString("yyyyMMddHHmmssff") + listInt.ToString().PadLeft(10, '0');
            return listInt;
        }
 

重复率有些高

 

@心路独舞
int rdom = 0; Random random = new Random(Guid.NewGuid().G...

  var strs = Guid.NewGuid().GetHashCode().ToString() + DateTime.Now.ToString("ffffff");
                byte[] buffer = Encoding.UTF8.GetBytes(strs);
                // 创建一个新的随机数生成器。   
                RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider();
                //  用随机值填充数组。   
                Gen.GetBytes(buffer);
                Int32 numstr = Math.Abs(BitConverter.ToInt32(buffer, 0) % (int)Math.Pow(10, 10));

 

 

 

最终采用这种方法;

通过计算:  var strs = Guid.NewGuid().GetHashCode().ToString() + DateTime.Now.ToString("ffffff");
                byte[] buffer = Encoding.UTF8.GetBytes(strs);
                // 创建一个新的随机数生成器。   
                RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider();
                //  用随机值填充数组。   
                Gen.GetBytes(buffer);
                Int32 numstr = Math.Abs(BitConverter.ToInt32(buffer, 0) % (int)Math.Pow(10, 10));

@心路独舞
int rdom = 0; Random random = new Random(Guid.NewGuid().G...
var strs = Guid.NewGuid().GetHashCode().ToString() + DateTime.Now.ToString("ffffff");
byte[] buffer = Encoding.UTF8.GetBytes(strs);
// 创建一个新的随机数生成器。
RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider();
// 用随机值填充数组。
Gen.GetBytes(buffer);
Int32 numstr = Math.Abs(BitConverter.ToInt32(buffer, 0) % (int)Math.Pow(10, 10));
@捍卫机密
//并发随机数种子public int Seed() { byte[] bytes = new byte[4]; ...
回复 @捍卫机密 : 我已经找到了,这种不错的最终采取一种,10位数 100000重复率0.005%左右; 6位为4.807%前后(趋于稳定); 7位数字为0.5%左右; 8位数字为0.05左右; 9位数字为为0.005左右
@捍卫机密
//并发随机数种子public int Seed() { byte[] bytes = new byte[4]; ...
@gs586169 回复@gs586169 : List<int> listInt = new List<int>(); Stopwatch watch = new Stopwatch(); private static int[] GetRandomIntValues(int expectedCouont) { Dict...
@心路独舞
int rdom = 0; Random random = new Random(Guid.NewGuid().G...
@gs586169 回复@gs586169 : 小学生一个
@心路独舞
int rdom = 0; Random random = new Random(Guid.NewGuid().G...
@gs586169 回复@gs586169 : 你在逗我吗,重复率有多大,这个需要测试说明的
@心路独舞
int rdom = 0; Random random = new Random(Guid.NewGuid().G...
回复@gs586169 : 重复率底可以接受,接受并发
@心路独舞
int rdom = 0; Random random = new Random(Guid.NewGuid().G...
回复@简约_bolin : 作为id
@心路独舞
int rdom = 0; Random random = new Random(Guid.NewGuid().G...
@红薯 回复@红薯 : 好的谢谢。
@心路独舞
@红薯 你好,想跟你请教个问题: private static int Next(int numSeeds, in...
回复@红薯 : 这个是Java类吧,C#里面应该没有吧
@心路独舞
@红薯 你好,想跟你请教个问题: private static int Next(int numSeeds, in...
回复@红薯 : 感谢你老人家,热心解答,我试试看看。
@心路独舞
@红薯 你好,想跟你请教个问题: private static int Next(int numSeeds, in...
那么有没有什么好的方法生成6伪随机不重复的数字呢,即使并发情况下也可以。
@捍卫机密
//并发随机数种子public int Seed() { byte[] bytes = new byte[4]; ...
回复@红薯 : 那怎么样随机生成6位不重复的数据呢,1000000条不重复或者重复率底些。
@心路独舞
@红薯 你好,想跟你请教个问题: private static int Next(int numSeeds, in...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部