网站制作在哪里找,wordpress 设置登陆界面,酒仙桥网站建设,有没有做网站的概述
全称为远程字典服务。
Redis——基础篇(包含redis在云服务上的docker化安装和连接以及常用命令)_连接docker中的redis_北岭山脚鼠鼠的博客-CSDN博客
Redis能干什么#xff1f;
1.内存存储、持久化#xff0c;内存中是断电即失#xff0c;因此持久化很重要#xff…概述
全称为远程字典服务。
Redis——基础篇(包含redis在云服务上的docker化安装和连接以及常用命令)_连接docker中的redis_北岭山脚鼠鼠的博客-CSDN博客
Redis能干什么
1.内存存储、持久化内存中是断电即失因此持久化很重要rdb,aof
2.效率高可以用于高速缓存。
3.发布订阅系统
4.地图信息分析
5.计时器计数器浏览量
6. ...
三种特殊数据类型
geospatial地理位置
朋友的定位附近的人打车距离计算
Redis的geo可以推算地理位置的信息两地之间的距离方圆几里之内的人。
六个命令
geoadd添加地理位置的坐标。geopos获取地理位置的坐标。geodist计算两个位置之间的距离。georadius根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。georadiusbymember根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。geohash返回一个或多个位置对象的 geohash 值。
geoadd
城市经纬度查询-国内城市经度纬度在线查询工具
geoadd 用于存储指定的地理空间位置可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。
geoadd 语法格式如下
GEOADD key longitude latitude member [longitude latitude member ...]
#添加单条数据
geoadd china:city 116 39 beijing
#添加多条数据
geoadd china:city 113.28 23.12 guangzhou 121.47 31.23 shanghai geopos
geopos 用于从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回null
语法格式如下
GEOPOS key member [member ...]
#查询单条数据
geopos china:city beijing
#查询多条数据
geopos china:city beijing shanghai geodist
geodist 用于返回两个给定位置之间的距离。
geodist 语法格式如下
GEODIST key member1 member2 [m|km|ft|mi]
member1 member2 为两个地理位置。
最后一个距离单位参数说明
m 米默认单位。km 千米。mi 英里。ft 英尺。
geodist china:city beijing shanghai georadius、georadiusbymember
georadius 以给定的经纬度为中心 返回键包含的位置元素当中 与中心的距离不超过给定最大距离的所有位置元素。
georadiusbymember 和 georadius 命令一样 都可以找出位于指定范围内的元素 但是 georadiusbymember 的中心点是由给定的位置元素决定的 而不是使用经度和纬度来决定中心点。
georadius 与 georadiusbymember 语法格式如下
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key] m 米默认单位。km 千米。mi 英里。ft 英尺。WITHDIST: 在返回位置元素的同时 将位置元素与中心之间的距离也一并返回。WITHCOORD: 将位置元素的经度和纬度也一并返回。WITHHASH: 以 52 位有符号整数的形式 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试 实际中的作用并不大。COUNT 限定返回的记录数。ASC: 查找结果根据距离从近到远排序。DESC: 查找结果根据从远到近排序。
georadius china:city 110 30 2000 km WITHDIST georadiusbymember china:city shanghai 2000 km withdist geohash
Redis GEO 使用 geohash 来保存地理位置的坐标。
geohash 用于获取一个或多个位置元素的 geohash 值。
geohash 语法格式如下
GEOHASH key member [member ...] 删除位置
geo底层用的是zset实现
查看
zrange china:city 0 -1
删除
zrange china:city guangzhou
Hyperloglog
什么是基数不重复的元素的个数
A{1,3,5,7,8,7} 5
B{1,3,517,8} 5
redis Hyperloglog 基数统计的算法
应用场景:
网页的UV(一个人访问一个网站多次但是还是算作一个人)
传统方式set保存用户id.
在 Redis 里面每个 HyperLogLog 键只需要花费 12 KB 内存就可以计算接近 2^64 个不同元素的基 数。这和计算基数时元素越多耗费内存就越多的集合形成鲜明对比。
pfadd
Redis Pfadd 命令将所有元素参数添加到 HyperLogLog 数据结构中。
PFADD key element [element ...]
pfadd mykey 1 2 3 4 4 pfcount
Redis Pfcount 命令返回给定 HyperLogLog 的基数估算值。
PFCOUNT key [key ...]
pfcount mykey pfmerge
Redis PFMERGE 命令将多个 HyperLogLog 合并为一个 HyperLogLog 合并后的 HyperLogLog 的基数估算值是通过对所有 给定 HyperLogLog 进行并集计算得出的。
PFMERGE destkey sourcekey [sourcekey ...] Bitmaps位存储
setbit
Redis Setbit 命令用于对 key 所储存的字符串值设置或清除指定偏移量上的位(bit)。
Setbit KEY_NAME OFFSET
redis SETBIT bit 10086 1
(integer) 0redis GETBIT bit 10086
(integer) 1redis GETBIT bit 100 # bit 默认被初始化为 0
(integer) 0 Getbit
Redis Getbit 命令用于对 key 所储存的字符串值获取指定偏移量上的位(bit)。
GETBIT KEY_NAME OFFSET
redis GETBIT bit 10086
(integer) 0 Bitcount
统计一个key里面对应的1有多少
bitcount bit Redis事务本质一组命令的集合一个事务的所有命令都会被序列化执行时会按照顺序执行
一次性顺序性排他性。
Redis单条命令是保证原子性的但是事务不保证原子性。
Redis不存在隔离级别的概念。
执行事务
一个事务从开始到执行会经历以下三个阶段
开始事务。multi命令入队。(其他命令)执行事务。(exec) 关闭事务 编译型异常
代码问题、命令有错
所有命令都不会执行 运行时异常
字符串无法加1所以失败了。但是其他的正常执行了。 监控
悲观锁
无论任何操作都加锁影响性能。
乐观锁
认为什么时候都不会出问题所以不会上锁。
更新数据的时候去判断一下在此期间是否有人修改过这个锁。
获取version,更新时比较version
redis的监视测试
正常监视 测试多线程修改值时使用watch可以当做redis的乐观锁。
一个进程在watch之后进了事物还没执行时另一个进程在执行时就会修改失败。 想要成功可以直接unwatch解锁然后再次watch监视.