和redis建立socket链接
nc localhost 6379 [root@redis ~]# nc localhost 6379 keys * *5 $6 unkey2 $5 unkey $2 k1 $2 k2 $6 unkey1 set nckey a +OK flushall +OK [root@redis ~]# echo -e "set k2 99 incr k2 get k2" | nc localhost 6379 +OK :100 $3 100
让通信成本变低
发布订阅
订阅方先订阅: 127.0.0.1:6379> subscribe ooxx Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "ooxx" 3) (integer) 1 1) "message" 2) "ooxx" 3) "one" 发布方在发布: 127.0.0.1:6379> publish ooxx one (integer) 1 订阅消费信息: 3) "one"
事务
事务1操作k1 事务2操作k1 谁先提交事务谁先处理 例如: 第一台: 127.0.0.1:6379> get k1 "bbb" 127.0.0.1:6379> multi OK 127.0.0.1:6379> get k1 QUEUED 第二台操作: 127.0.0.1:6379> get k1 "bbb" 127.0.0.1:6379> multi OK 127.0.0.1:6379> set k1 ccc QUEUED 127.0.0.1:6379> exec 1) OK 127.0.0.1:6379> get k1 "ccc" 第一台操作: 127.0.0.1:6379> exec 1) "ccc" 监控: 第一台: 127.0.0.1:6379> keys * 1) "k1" 127.0.0.1:6379> watch k1 OK 127.0.0.1:6379> multi OK 127.0.0.1:6379> get k1 QUEUED 127.0.0.1:6379> keys * QUEUED 第二台: 127.0.0.1:6379> multi OK 127.0.0.1:6379> keys * QUEUED 127.0.0.1:6379> set k1 bbb QUEUED 127.0.0.1:6379> exec 1) 1) "k1" 2) OK 127.0.0.1:6379> keys * 1) "k1" 第一台: 127.0.0.1:6379> exec (nil)
redisbloom布隆过滤器
1,访问redis.io 2,modules 3,访问RedisBloom的github wget https://github.com/RedisBloom/RedisBloom/archive/master.zip 4.yum install unzip 5.unzip *.zip 6.make 7.cp bloom.so /opt/mashibing/redis5/ 8.redis-server --loadmodule /opt/bigdata/redis5/redisbloom.so 9 ,redis-cli 10: 测试 bf.add a abc bf.exits a abc 1,穿透了,不存在 2,client,增加redis中的key,value标记 3,数据库增加了元素 4,完成元素对bloom的添加
redis作为数据库/缓存的区别缓存!!!!
1.缓存数据不重要,不是全量数据 2.缓存应该随着访问变化(只存储热数据) 缓存: 缓存里的数据怎么能随着业务变化,只保留热数据,因为内存大小式有限的,也就是瓶颈
vi /etc/redis/6379.conf
bind 127.0.0.0.1 配置谁能访问 requirepass foobared 设置密码 bind和requirepass同时配置 外部才能访问 include /path/to/other.conf 配置文件也可以写这里 loadmodule /path/to/my_module.so 启动时候配置这个参数,也可以将配置文件加载进来 例如布隆: redis-server --loadmodule /opt/bigdata/redis5/redisbloom.so daemonize yes yes是后台启动,no是控制台 loglevel notice 日志级别 logfile /var/log/redis_3679.log databases 16 默认16个库 内存配置 maxmemory <bytes> 建议1-10G 回收策略 maxmemory-policy noeviction 默认不回收 volatile-LFU 碰了多少次(回收使用最少的键) allkeys-LRU 多久没碰他(回收长时间) key有效期: 1.会随着访问延长? 不会 2.发生写,会剔除原过期时间 3.一直倒计时 淘汰过期原理: 1.主动: 客户端访问它时,key会被发现并主动的过期。 2.被动: (概率算法)周期轮询检测,使得过期key低于25%