| 分类 | 相关产品 | 典型应用 | 数据模型 | 优点 | 缺点 |
|---|---|---|---|---|---|
| 键值对(Key-Value)存储 | Redis、Voldemort、Berkeley DB | 内容缓存、处理高访问负载 | 一系列键值对 | 快速查询 | 存储的数据缺少结构化 |
| 列存储数据库 | Cassandra、HBase、Riak | 分布式文件系统 | 以列簇式存储,将同一列数据存在一起 | 查询速度快,可扩展性强,更容易进行分布式扩展 | 功能相对局限 |
| 文档型数据库 | MongoDB、CouchDB | Web应用 | 一系列键值对 | 数据结构要求不严格 | 查询性能不高,缺乏统一的查询语法 |
| 图形数据库 | Neo4j、InfoGrid | 社交网络,推荐系统,专注于构建关系图谱 | 图结构 | 利用图结构相关算法 | 需要对整个图做计算才能得出结果,不容易做分布式的集群方案 |
$ scp ~/Downloads/redis-4.0.1.tar.gz root@192.168.2.10:/usr/local //上传安装包 $ ssh root@192.168.2.10 //SSH连接 # yum -y install gcc gcc-c++ autoconf automake //gcc、gcc-c++的库文件 # cd /usr/local # tar -zxvf redis-4.0.1.tar.gz //解压缩 # cd redis-4.0.1 //切换到该目录下 # make //编译,将.c文件编译为.o文件 # make PREFIX=/usr/local/redis install //指定路径安装 # cd /usr/local # ls //如果存在redis文件夹,则安装成功
redis-benchmark //性能测试的一个工具 redis-check-aof //aof文件修复的一个工具 redis-check-aof --fix appendonlly.aof redis-check-dump //rdb文件检查的一个工具,rdb文件为Redis默认数据库文件 redis-check-rdb //rdb文件修复的一个工具 redis-check-rdb --fix dump.rdb redis-cli //命令行的一个客户端 redis-sentinel -> redis-server redis-server //redis服务器启动的命令
# cd redis-4.0.1 # cp redis.conf /usr/local/redis # cd /usr/local/redis # vim redis.conf //编辑Redis的配置文件
# vim /etc/sysconfig/iptables //打开Linux防火墙的设置 //增加代码 -A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT //退出 vim,执行防火墙重启命令 # service iptables restart # ./bin/redis-server ./redis.conf //启动redis服务器,可以通过 ps -ef | grep -i redis 查看启动是否成功
# ./bin/redis-cli shutdown //停止redis服务器 # ./bin/redis-cli //打开redis命令行客户端
$ ssh root@192.168.2.10 //SSH连接 # /usr/local/redis/bin/redis-cli > keys * //显示所有的key > keys my? //显示以my开头的所有key > del my1 my2 my3 //删除my1、my2、my3 > exists my1 //检查是否存在,存在返回1,不存在返回0 > get my1 //获取key的value值 > rename my1 my2 //重命名my1为my2 > expire my1 1000 //设置key过期时间,单位秒 > ttl my1 //剩余超时时间,没有设置则返回-1 > type my1 //获取key对应value的类型
> set name zhangsan //赋值 set [key][value] > get name //取值 get [key] > getset name lisi //取值并赋值 > del name //删除 del [key] > incr num //数值递增1,如果没有就默认创建0并递增1 incr [key] > decr num //数值递减1,如果没有就默认创建0并递减1 > incrby num2 5 //数值递增指定值,如果没有就默认创建0 incrby [key][指定值] > decrby num2 5 //数值递减指定值,如果没有就默认创建0 decrby [key][指定值] > append num3 5 //插入指定内容,如果有则追加内容,如果没有则新创建 append [key][插入值]
> hset myhash username tom //赋值单个属性 hset [key][Hash键值对] > hmset myhash username tom2 rose age 20 //赋值多个属性 hmset [key][Hash键值对1] rose [Hash键值对2] > hget myhash username //获取单个属性 hget [key][key2] > hmget myhash username age //获取多个属性 hget [key][key2][key3] > hgetall myhash //获取全部值 > hdel myhash username age //删除多个属性 > del myhash //删除整个集合 > hincrby myhash age 5 //增加属性值 > hexists myhash username //判断某个属性中的key是否存在,存在返回1,不存在返回0 > hlen myhash //获取属性个数 hlen [key1] > hkeys myhash //获取所有属性名称 hkeys [key1]
> lpush mylist a b c //从双向链表的头部开始添加,如果mylist不存在则创建 lpush [key][value1][value2].. > lpushx mylist d //从双向链表的头部开始添加,如果mylist不存在则不插入 > rpush mylist 1 2 3 //从双向链表的尾部开始添加 > lrange mylist 0 5 //查看链表 lrange [key][开始位置][结束位置] > lpop mylist //弹出双向链表的头部元素,弹出后,双向链表中就没有这个元素了 > rpop mylist //弹出双向链表的尾部元素 > rpoplpush mylist1 mylist2 //将mylist1里面头部元素弹出插入mylist2头部 > llen mylist //获取元素个数 llen [key] > lrem mylist 1 2 //从头到尾删除1个2 lrem [key][删除的个数][删除的元素] > lrem mylist -1 2 //从尾到头删除1个2 > lrem mylist 0 2 //从尾到头删除所有2 > lset mylist 3 k //第三个value值设置为k > linsert mylist before b 11 //第一个b之前插入11 > linsert mylist after b 22 //第一个b之后插入22
> sadd myset a b c //向Set中添加了三个值 sadd [key][Set集合值] > srem myset a b //删除指定元素 > smembers myset //查看Set中元素 smembers [key] > sismember myset c //判断Set中是否存在c,存在返回1,不存在返回0 > sdiff myset myset2 //返回两个Set集合的差集运算 > sdiffstore my my1 my2 //将两个Set集合的差集存储到另一个集合(my)中 > sinter myset myset2 //返回两个Set集合的交集运算 > sunion myset myset2 //返回两个Set集合的并集运算 > scard myset //返回Set集合成员数量 > srandmember myset //随机返回Set中一个成员
> zadd mysort 65 aa 85 bb 95 cc //有序添加元素 zadd [key][姓名 分数][姓名 分数]... > zscore mysort aa //获得分数 > zcard mysort //返回集合成员数量 > zrem mysort tom cc //删除元素 > zrange mysort 0 -1 //范围查询,-1表示最后,显示姓名 > zrange mysort 0 -1 withscores //范围查询,姓名分数都会显示 > zrevrange mysort 0 -1 withscores //范围查询,由大到小排序显示 > zremrangebyrank mysort 0 2 //按照排序的范围进行删除,0~2位置 > zremrangebyscore mysort 70 90 //按照分数进行删除,70~90 > zrangebyscore mysort 0 90 //按照分数查0~90之间的 > zrangebyscore mysort 0 90 withscores limit 0 2 //按照分数查0~90之间的,由大到小排序,只显示前2个 > zcount mysort 60 100 //获取60~100之间的个数
> select 1 //选择1号数据库 > move myset 2 //移动myset到2号数据库
> multi //开启事务 > exec //提交事务 > discard //回滚事务
<!-- jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> <type>jar</type> <scope>compile</scope> </dependency>
Jedis jedis = null;
try {
jedis = new Jedis("123.57.73.52",6379);
jedis.set("name", "zhangsan"); //保存数据
String value = jedis.get("name"); //获取数据
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
} finally {
jedis.close(); //释放资源
}
//获得连接池的配置对象
JedisPoolConfig config = new JedisPoolConfig();
//设置最大连接数, 默认8个
config.setMaxTotal(8);
//设置最大空闲连接数, 默认8个
config.setMaxIdle(8);
//获得连接池
JedisPool jedisPool = new JedisPool(config, "123.57.73.52",6379);
//获得核心对象
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.set("name2", "lisi"); //保存数据
String value = jedis.get("name2"); //获取数据
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
} finally {
jedis.close(); //释放资源
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有