1. Redis学习笔记

1. 链接

2. Linux下安装

  • 下载安装包
  • 解压redis安装包,程序/opt
  • 基本的环境安装
yum -y install gcc-c++
# 查看gcc版本
gcc -v

make
make install
  • redis 默认安装路径 /usr/local/bin

  • 将源码路径下redis配置文件,复制到/usr/local/bin/myconfig/

  • 修改redis.conf配置文件

  • 客户端进行验证

  • 检测redis默认端口是否在使用中,如在使用则安装程。 netstat -ntlp grep 6379

  • 查看redis进程是否开启ps -ef |grep redis

在这里插入图片描述

  • 如何关闭redis服务 shutdown 不建议使用,防止把服务器给关掉
  • [阿里云安装Redis教程与相关问题](https://www.cnblogs.com/blackBlog/p/12924891.html

3. 性能测试 - redis-benchmark

在这里插入图片描述

测试:100个并发链接,100000请求!

redis-benchmark -h localhost -p 6379 -c 100 -n 100000

在这里插入图片描述

4. Redis基础知识

  • redis默认有16个数据库

  • 选择数据库select index

  • 查看当前数据库的大小dbsize

  • 清空当前数据库flushdb \ 清空所有数据库flushall

  • 查看指定key是否存在EXISTS key

  • 移出指定的keymove key 1

  • 让指定数据在指定的时间失效expire key 10,单位是秒

  • 查看当前key的剩余时间ttl key

  • 查看指定key的类型type key

  • Redis更多命令

5. 五大数据类型

5.1. String类型

  • 追加字符串APPEND key value

  • 获取字符串的长度STRLEN

  • 自增/自减运算 INCR/DECR

  • 自增/自减指定的值 INCRBY/DECRBY

  • 获取某个范围GETRANGE的字符串

  • 替换某个范围的字符串SETRANGE

  • 设置过期时间SETEX

  • 不存在的时候才设置SETNX

  • 批量设置/获取值MSET,MSETNX/MGET

  • 获取当前的值的同时设置一个新值GETSET

5.2. List类型

  • List当中插入一个元素LPUSH/RPUSH

  • List当中获取指定元素LRANGE

  • 移出List集合中的一个元素LPOP/RPOP

  • 移出List集合中指定的元素LREM

  • 根据索引(下标)获取集合中元素值LINDEX

  • 获取List的长度LLEN

  • 裁剪List为原来的一部分(直接修改原有List集合)

  • 移出列表的最后一个元素,并移动到新的列表中RPOPLPUSH

  • 将列表中指定的下标值替换为另一个值,更新操作,如果下标不存在就会报错

  • 在list集合中的指定元素前面插入值linsert lst before world xiaofan

5.3.Set集合

  • 集合中添加元素sadd myset hello kuangshen lovekuangshen

  • 查看集合中的元素SMEMBERS

  • 判断某个元素是否存在于集合中SISMEMBER myset hello

  • 获取集合中元素个数SCARD

  • 移出集合中指定的元素值SREM

  • 随机获取Set集合中的值SRANDMEMBER

  • 随机删除集合中的一个元素SPOP

  • 移动指定的元素到另一个集合当中去SMOVE

  • 差集/交集/并集SDIFF/SINTER/SUNION

5.4. Hash集合

  • 设置一个具体的字段值hset myhash field2 value2

  • 设置多个个具体的字段值hmset myhash field2 value2 field3 value3

  • 获取多个指定的字段值hmget myhash field1 field2

  • 获取全部的值hgetall myhash

  • 删除hash指定的键HDEL myhash field1

  • 获取键值对的个数HLEN判断hash中指定字段是否存在HEXISTS

  • 获取所有的key、valueHKEYS/HVALS

5.5. Zset有序集合

  • 添加元素zadd myset 1 one 2 two 3 three

  • 获取所有元素zrange myset 0 -1

  • 排序ZREVRANGEBYSCORE key max min WITHSCORES LIMIT offset count

  • 升序/降序zrange myzset 0 -1/ZREVRANGE myzset 0 -1

  • 获取指定区间的元素个数zcount myzset 1 4

6. 三种特殊的饿数据类型

6.1. geospatial 地理位置

127.0.0.1:6379> geoadd china:city 116.405285 39.904989 beijing
(integer) 1
127.0.0.1:6379> geoadd china:city 121.472644 31.231706 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.504962 29.533155 chongqing
(integer) 1
127.0.0.1:6379> geoadd china:city 120.153576 30.287459 hangzhou
(integer) 1
127.0.0.1:6379> geoadd china:city 125.14904 42.927 xian
(integer) 1
127.0.0.1:6379> geoadd china:city 112.549248 37.857014 taiyuan
(integer) 1

  • geopos 获取指定城市的经纬度
127.0.0.1:6379> geopos china:city taiyuan
1) 1) "112.54924803972244263"
   2) "37.85701483724372451"
127.0.0.1:6379> geopos china:city beijing
1) 1) "116.40528291463851929"
   2) "39.9049884229125027"
  • geodist 获取两个位置之间的距离
m 为米。
km 为千米。
mi 为英里。
ft 为英尺。

127.0.0.1:6379> geodist china:city beijing taiyuan km
"404.1120"
127.0.0.1:6379> geodist china:city beijing shanghai
"1067597.9668"
127.0.0.1:6379> geodist china:city beijing shanghai km
"1067.5980"

  • GEORADIUS具体指定位置多少范围内的所有城市
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km
1) "chongqing"
2) "hangzhou"
3) "taiyuan"
127.0.0.1:6379> GEORADIUS china:city 110 30 500 km
1) "chongqing"

127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord
1) 1) "chongqing"
   2) 1) "106.50495976209640503"
      2) "29.53315530684997015"
2) 1) "hangzhou"
   2) 1) "120.15357345342636108"
      2) "30.28745790721532671"
3) 1) "taiyuan"
   2) 1) "112.54924803972244263"
      2) "37.85701483724372451"
      
# 获取指定的个数
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord count 2
1) 1) "chongqing"
   2) 1) "106.50495976209640503"
      2) "29.53315530684997015"
2) 1) "taiyuan"
   2) 1) "112.54924803972244263"
      2) "37.85701483724372451"

  • GEORADIUSBYMEMBER 找出位于指定元素周围的其他元素
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km 
1) "taiyuan"
2) "beijing"
3) "xian"
  • geohash 命令,返回一个或者多个位置元素的geohash表示

该命令将返回11个字符的Geohash字符串,如果两个字符串越接近,表示距离越近!

127.0.0.1:6379> geohash china:city beijing chongqing
1) "wx4g0b7xrt0"
2) "wm78p86e170"

GEO 底层的实现原理其实就是Zset!我们可以使用Zset命令来操作geo࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值