![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
redis
搞钱自律
这个作者很懒,什么都没留下…
展开
-
redis的hyperloglog
什么是基数?A{1,3,5,7,8,7}B{1,3,5,7,8}基数就是不重复的元素个数=5,可以接受误差hyperloglog简介Redis2.8.9 版本就更新了hypeloglog数据结构redis hyperloglog 基数统计的算法使用场景网页的UV网页的访问量(一个人访问一个网站多次,但是还是算作一个人)传统的方式,set保存用户的id,然后就统计set中的元素数量作为标准判断。这种方式如果保存大量的用户id,会很耗内存。我们的目的是为了技术,而不是保存用户id。hyper原创 2022-02-27 17:21:56 · 502 阅读 · 0 评论 -
redis的hash类型
hset 设置hash类型hget 获取hash类型hmset 批量设置hash类型hget 批量获得hash类型hgetall 获取全部的额数据hdel 删除hash指定key字段,对应的value值也就消失了hlen 获取hash表的字段数量hexists 判断hash中指定字段是否存在hkeys 只获得所有fieldhvals 只获得所有valuehincrby 指定增量增加hsetnx 如果不存在则可以设置,如果存在则不可以设置hash适合存储变更的数据,尤其是用户信.原创 2022-02-21 21:19:02 · 481 阅读 · 0 评论 -
jedis操作set类型命令
package org.example;import redis.clients.jedis.Jedis;public class TestSet { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.222.200", 6379); jedis.flushDB(); System.out.println("============向集合中添加元素原创 2022-03-05 15:26:32 · 1148 阅读 · 0 评论 -
jedis操作string类型
package org.example;import redis.clients.jedis.Jedis;import java.util.concurrent.TimeUnit;public class TestString { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.222.200", 6379); jedis.flushDB();原创 2022-03-05 15:23:16 · 499 阅读 · 0 评论 -
redis关于key的基本命令
exist (key名) :表示是否存在这个keymove (key名) db的下标:表示将当前数据库的 key 移动到给定的数据库 db 当中。expipe (key名) 多久过期:给redis的key设置过期时间ttl (key名) :查看该key还有多久过期[root@centos7 bin]# cd /usr/local/bin/ #进入redis安装目录[root@centos7 bin]# lsconfig dump.rdb redis-benchmark redis-che原创 2022-02-07 23:13:17 · 967 阅读 · 0 评论 -
jedis
什么是Jedisjedis是redis官方推荐的java连接开发工具!使用Java操作redis的中间件!如果你要使用Java操作redis,那么一定要对jedis十分熟悉使用Jedis前提必须要放开redis允许启动主机访问。注释/usr/local/bin/config/redis.conf的 bind 127.0.0.1 这个句话取消保护模式redis处于保护模式,只能本地链接,我们需要修改配置文件redis.conf,将protected-mode yes改成no3.防火墙开原创 2022-03-01 00:12:21 · 613 阅读 · 0 评论 -
redis事务
事务事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行。由于它们会在一个队列中一并执行,叫一致性它会按照顺序执行,所以叫顺序性事务它在执行过程中,不允许别人干扰的,叫排他性...原创 2022-02-27 23:33:27 · 361 阅读 · 0 评论 -
redis对象序列化
序列化对象pojo对象```java @Test public void test() throws JsonProcessingException { //真实开发一般都使用json来传递对象 User user = new User("张三",3); String jsonUser = new ObjectMapper().writeValueAsString(user); redisTemplate.opsForV..原创 2022-03-07 23:31:50 · 608 阅读 · 0 评论 -
springboot集成redis
说明:在SpringBoot2.x之后,原来使用的jedis被替换成了lettucejedis:采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用jedis pool连接池!更像BIO模式lettuce:采用netty,实例可以在多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据了,更像NIO模式源码分析 @Bean @ConditionalOnMissingBean(name = "redisTemplate") //我们可以自己定义一个redisTemplate.原创 2022-03-05 23:40:02 · 706 阅读 · 0 评论 -
redis的list列表类型
在redis里面,我们可以把list玩成栈、队列、阻塞队列lpush 将一个值或者多个值,插入到列表头部(左)rpush 将一个值或者多个值,插入到列表尾部(右)lrange 获取list指定区间的值lpop 移除list的第一个元素rpop 移除list的最后一个元素lindex 通过下标获得list中的某一个值llen 返回列表的长度lrem 移除list集合中指定个数的value,精确匹配ltrim 通过下标截取指定的长度,这个list已经被改变了,阶段了只剩下截取的元素127原创 2022-02-10 23:06:13 · 924 阅读 · 0 评论 -
redis的zset类型
zadd 添加值zrange 获取指定范围的值zrangebyscore 显示全部用户,从小到大(升序)zrevrange 从大到小进行排序(降序)zrem 移除有序集合中的指定元素zcard 获取有序集合中的个数zcount 获取指定区间的成员数量########################################################################################### 设置获取值127.0.0.1:6379> za.原创 2022-02-21 22:40:48 · 347 阅读 · 0 评论 -
jedis操作hash类型命令
package org.example;import redis.clients.jedis.Jedis;import java.util.HashMap;import java.util.Map;public class TestHash { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.222.200", 6379); jedis.flushDB()原创 2022-03-05 15:27:30 · 1861 阅读 · 0 评论 -
redis基本知识
redis默认有16个数据库,默认使用的是第0个,可以使用select进行数据库切换![root@centos7 bin]# cd /usr/local/bin/ #进入redis安装目录[root@centos7 bin]# lsconfig dump.rdb redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server[root@centos7 bin]# redis-s原创 2022-02-07 21:49:11 · 571 阅读 · 0 评论 -
redis的set集合类型
set中的值是不能重读的sadd set集合中添加元素smembers 查看指定set集合的所有值sismember 判断某一个值是否在set集合中scard 获取set集合中的元素个数srem 移除set集合中的指定元素srandmember 随机抽选元素,可以用来做抽奖spop 随机删除keysmove 将一个指定的值,移动到另外一个set集合sdiff 差集sinter 交集 (共同好友)sunion 并集 (可以搞推荐好友)127.0.0.1:6379> s原创 2022-02-13 00:40:16 · 382 阅读 · 0 评论 -
CentOS7.9安装redis
第一步:下载redis的linux环境的安装包第二步:上传到CentOS7.9第三步:解压解压后,进入解压目录,可以看到redis配置文件第四步:安装redis依赖环境gcc可以通过gcc -v看是否安装没问题第五步:编译出现如下就可以了第六步:安装redis默认安装路径在:/usr/local/bin/在安装目录下新建config目录,将压缩文件的redis配置文件拷贝到config目录里第七步:将redis设置后台启动redis默认不是后台启动的,修改配置文原创 2022-01-22 17:11:17 · 1346 阅读 · 0 评论 -
redis-benchmark性能测试
redis-benckmark是一个压力测试工具,官方自带的性能测试工具redis-benchmark 参数#测试:100个并发连接 100000redis-banchmark -h localhost -p 6379 -c 100 -n 100000```原创 2022-01-22 23:59:48 · 342 阅读 · 0 评论 -
jedis操作事务
package org.example;import com.alibaba.fastjson.JSONObject;import redis.clients.jedis.Jedis;import redis.clients.jedis.Transaction;public class TestTX { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.222.200",6原创 2022-03-05 15:40:40 · 538 阅读 · 0 评论 -
redis的string字符串类型
append 追加字符串,如果当前key不存在,就相当于set keystrlen 字符串的长度incr 自增,步长为1decr 自减,步长为1incrby 指定步长的增长decrby 指定步长的减getrange 获取字符串指定范围内的值setrange 替换字符串指定位置的值SETEX 设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期setnx 不存在再设置key(在分布式锁中会常常使用)mset 批量设置mget 批量获取getset 先g.原创 2022-02-09 20:43:27 · 615 阅读 · 0 评论 -
redis的Geospatial地理位置类型
朋友的定位,附近的人,打车距离计算?可以使用redis的geo类型,geo类型在redis3.2版本就推出了!这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人!城市经度纬度查询:http://www.jsons.cn/lngcode/官方文档中,geo只有6个命令##################################################################################################geoadd 添加地理位.原创 2022-02-21 23:29:34 · 806 阅读 · 0 评论 -
jedis操作key相关命令
package org.example;import redis.clients.jedis.Jedis;import java.util.Set;public class TestKey { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.222.200", 6379); System.out.println("清空数据:"+jedis.flushDB(原创 2022-03-05 15:21:08 · 584 阅读 · 0 评论 -
redis的bitmaps类型
简介Bitmaps位图,是操作二进制位来进行记录,就只有0和1两个状态!使用场景统计用户信息,活跃,不活跃,登录,未登录,打卡,365打卡!含有两个状态的统计,都可以使用bigmaps365=365bit 1字节=8big 大约46个字节左右测试使用bitmaps来计算周一到周日的打卡用0-6表示星期一到星期天,0表示未打卡,1表示已打卡127.0.0.1:6379> setbit sign 0 1 #星期一打卡(integer) 0127.0.0.1:6379>原创 2022-02-27 17:37:12 · 244 阅读 · 0 评论 -
redis实现乐观锁
悲观锁很悲观,认为什么时候都会出问题,无论做什么都会加锁!很耗性能乐观锁很乐观,认为什么时候都不会出问题,所以不会上锁!更新数据的时候去判断一下,在此期间是否有人修改过这个数据获取version更新的时候比较versionredis监视测试watch正常执行127.0.0.1:6379> set money 100OK127.0.0.1:6379> set out 0 OK127.0.0.1:6379> watch money #监听money对象OK原创 2022-02-28 22:42:52 · 177 阅读 · 0 评论 -
jedis操作list类型
package org.example;import redis.clients.jedis.Jedis;public class TestList { public static void main(String[] args) { Jedis jedis = new Jedis("192.168.222.200", 6379); jedis.flushDB(); System.out.println("===========添加一个list原创 2022-03-05 15:24:58 · 1995 阅读 · 0 评论