redis 入门以及实例
Posted zolty
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 入门以及实例相关的知识,希望对你有一定的参考价值。
1.常用命令
安装redis:
sudo apt install redis-server
安装redis-tools:
sudo apt install redis-tools
连接:
redis-cli -p 6379
测试:
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
切换数据库:
Select 3
数据库空间:
dbsize
Set:
Set name zolty
Get:
Get name
查看所有key:
Keys *
清空当前库:
Flushdb
清空所有库:
Flushall
是否存在key:
Exists name
转移到库1:
Move name 1
设置过期时间:
Expire name 10
查看剩余时间:
Ttl name
查看key类型:
Type name
String追加:
Append key1 "hello"
String获取长度:
Strlen key1
增加1:
Incr key1
减少1:
Decr key1
指定增量:
Incrby keys 10
指定减量:
Decrby keys 10
指定截取:
Getrange key1 0 3
指定替换:
Setrange key1 1 xx
设置30秒后过期:
Setex key3 30 "hello"
不存在创建:
Setnx mykey "REDIS"
设置多个值:
Mset k1 v2 k2 v2 k3 v3
获取多个值:
Mget k1 k2 k3
原子操作,要么一起成功,要么一起失败:
Msetnx k1 v1 k5 v5
#对象
设置一个user:1对象,值为json字符来保存一个对象
Set user:1 name:zhangsan,age:3
Mset user:1:name zhangsan user:1:age 2
Mget user1:name user1:age
先get再set:
Getset db redis
==========LIST============
用list可以实现栈,队列
插入三条数据:
Lpush list one
Lpush list two
Lpush list three
获取全部list:
Lrange list 0 -1 -> three two one
插入到队列最右侧:
Rpush listr right
左边移除:
Lpop list
右边移除:
Rpop list
2.python redis
#安装redis lib
pip install redis
在list中插入一个元素,通过lpush rpop 实现队列功能。
import redis
data = "CLST001,zolty,31.1000099,121.6549484"
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.lpush('OBUList',data) # insert data to OBUList
print(r.llen('OBUList')) # print OBUList's len : 1
print(r.type('OBUList')) # print OBUList's type : list
print(r.lrange('OBUList',0,1)) # print OBUList's first object : "CLST001,zolty,31.1000099,121.6549484"
r.lpop('OBUList') # pop the first object
print("======")
print(r.llen('OBUList')) # print OBUList's len after poping : 1
print(r.type('OBUList')) # print OBUList's first object after poping : nil
3.局域网连接redis
vi etc/redis/redis.conf
注释掉绑定localhost
#bind 127.0.0.1:1
关闭保护模式
protected mode no
#添加防火墙安全规则
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重启防火墙
systemctl restart firewalld.service
4.局域网连接测试
import redis # 导入redis 模块
r = redis.Redis(host='192.168.8.254', port=6379, decode_responses=True)
r.set('name', 'runoob') # 设置 name 对应的值
print(r['name'])
print(r.get('name')) # 取出键 name 对应的值
print(type(r.get('name'))) # 查看类型
5.在线调试
https://www.freeaihub.com/redis/setup.html
依次点击 运行 ,运行这3条指令,即可开始测试。
6.综合实例
利用python脚本,生成600个点插入redis 取名为mo的list,该post请求平均耗时10ms,mysql平均耗时30ms。
import redis # 导入redis 模块
r = redis.Redis(host='192.168.8.254', port=6379, decode_responses=True)
lon = 1211763490
lat = 312807289
for i in range(1, 600):
v = str(i) + "," + str(lat+i*100) + "," + str(lon+i*100)
print(v)
r.lpush("mo",v)
# 1, 312807389, 1211763590
# 2, 312807489, 1211763690
# 3, 312807589, 1211763790
# 4, 312807689, 1211763890
# 5, 312807789, 1211763990
# 6, 312807889, 1211764090
# 7, 312807989, 1211764190
# 8, 312808089, 1211764290
# 9, 312808189, 1211764390
# 10, 312808289, 1211764490
# 11, 312808389, 1211764590
# 12, 312808489, 1211764690
# .........................
java导入 jedis.js
读取mo的list,按逗号分割,存入二维数组
@RequiresPermissions("system:lmonitor:redisList")
@PostMapping("/redisList")
@ResponseBody
public Long[][] getMonitor(LstMonitor lstMonitor)
//连接本地的 Redis 服务
Jedis jedis = new Jedis("192.168.8.254");
System.out.println("连接成功");
// 获取存储的数据并输出
List<String> list = jedis.lrange("mo", 0 ,-1);
int length = list.size();
Long [][] arrayMonitor = new Long[3][length];
for(int i=0; i<list.size(); i++)
String[] arrays = list.get(i).replace("\\"","").split(",");
arrayMonitor[0][i] = Long.valueOf(arrays[0]);
arrayMonitor[1][i] = Long.valueOf(arrays[1]);
arrayMonitor[2][i] = Long.valueOf(arrays[2]);
return arrayMonitor;
利用echart.js,绘制600个点至HTML
<script th:inline="javascript">
var mapList =[];
var prefix = ctx + "system/lmonitor";
$.ajax(
url: prefix + "/redisList",
async: false,
type: 'POST',
dataType: 'json',
data : null,
success: function (data)
arrayMonitor = eval(data)
);
var map = new BMap.Map('container'); // 创建地图实例
var center = new BMap.Point(121.18720385246547,31.28460823015341); // 设置中心点
map.centerAndZoom(center, 100); // 初始化地图, 设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); //启用滚轮放大缩小,默认禁用
map.enableKeyboard(true); //启用键盘操作,默认禁用。
map.enableDragging(); //启用地图拖拽,默认启用
map.enableDoubleClickZoom(); //启用双击放大,默认启用
map.addControl(new BMap.NavigationControl()); //平移缩放控件
map.addControl(new BMap.ScaleControl()); //比例尺控件
var markers = new Array();
var contents = new Array();
var points = new Array();
var infos = new Array();
var infoWindows = new Array();
for (var i = 0; i < 80; i++)
var resolution = 10000000;
var longitude = arrayMonitor[2][i] / resolution;
var latitude = arrayMonitor[1][i]/ resolution;
var devId = arrayMonitor[0][i];
var opt = width: 200, height: 100, title: "背景OBU"; // 创建信息窗口
points[i] = wgs2bd(latitude,longitude);
//points[i] = new BMap.Point(longitude,latitude);
markers[i] = new BMap.Marker(points[i]);
map.addOverlay(markers[i]);
infos [i] = "<font color='#f10'>设备ID:" + devId + "</font><br>经度:" + longitude + "<br>纬度:" + latitude;
infoWindows [i] = new BMap.InfoWindow(infos[i], opt);
mark_point(infoWindows[i],points[i]);
;
function mark_point(infoWindow,point)
markers[i].addEventListener('click', function()
this.openInfoWindow(infoWindow,point);
);
;
</script>
参考文献
以上是关于redis 入门以及实例的主要内容,如果未能解决你的问题,请参考以下文章
Java 之SpringData Redis快速入门 以及( Redis快速入门安装和使用)