非关系型数据库Redis
1988 提出了NoSQL (非关系型数据库的补充)
2008/2010 — Big Data(大数据)
NoSQL = No SQL
NoSQL = No Only SQL
关系型数据库(锁) - 数据价值高强一致性
NoSQL产品:
四大类非关系型数据库 :
— Redis - 高速缓存(内存比硬盘快, 内存比硬盘小) - 键值对数据库
— MongoDB - 存放结构不严谨价值不高的数据 - 文档数据库
— Neo4j - 社交网站 - 图数据库
— HBase - 列族数据库
查看是否安装redis
1
| cd user/local/bin - ll | grep redis - cd ~ - 配置文件 - ls - cp - vim -61行 - :!ifconfig - 内网地址复制 - enter - i进入编辑模式 - 粘贴到61行 - 84行改端口 改成11223(0到2的10次方-1) - 命令模式480行/requirepass 1qaz2wsx - 命令模式 database可以改库数量
|
启服务器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 启服务: redis-server myredis.conf & - 杀进程kill 5021 (会显示关机过程, 数据显示已保存) - 查看后台进程jobs - 前台运行 fg %2 - ctrl+c - redis benchmark -h 120.77.222.217 -p 11223 -a 1qaz2wsx查看是否成功 ps -ef | grep redis 查进程 redis-cli -h 120.77.222.217 -p 11223 - - set username admin - keys*(看到所有键) / keys u*(查看u打头的键) / keys [u,p]*(查看u,p打头的键) - set foo hello ex 300 - get foo - get bar - ttl foo(查看存活时间) - expire username 15(15秒后过期) - ttl username - get username - ttl username - ttl email save (保存) / bgsave(后台保存) select 1(切换到2号库) set foo bar - get foo - select 0 - get foo select 15 - flushdb - keys* - select 0 - keys* - flushall(清理底层所有库) dbsize info - 查看服务器相关信息 shutdown save - 关闭服务器并保存数据 / shutdown no save - 关闭服务器不保存数据 set - 放键值对 del username - 删除数据 select index - 切换到指定的数据库
|
开启防火墙时连接
1 2 3 4 5 6
| 操作步骤 :1.systemctl start firewalld(开启防火墙) 2.firewall-cmd --add-port=11223/tcp --permanent --zone=public(给防火墙开洞) 3.firewall-cmd --reload(重新加载配置) 4.redis-cli -h 120.79.135.242 -p 11223 (客服端连接服务器) 5.auth 1qaz2wsx(输入密码) 6.ping 回复PONG 就成功了(ping是否连接成功)
|
关闭防火墙时连接
1 2 3 4 5
| 操作步骤 :1.systemctl stop firewalld 2.redis-benchmark -h 120.79.135.242 -p 11223 -a 1qaz2wsx 3.redis-cli -h 120.79.135.242 -p 11223 4.auth 1qaz2wsx 5.ping 回复PONG 就成功了
|
五种数据类型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| key(键) - 键都是字符串 String(字符串) : set foo 1 set bar 1.23 set username hello incr foo (网站投票, 网站页面首页缓存,SQL语句查询结果缓存) incr foo incrby foo 50 (网站投票) - redis中操作 incrbyfloat bar 1.23 Strlen - 长度 decr - 减少 append user name - 键后面追加内容与set相似 JSON格式的字符串也可以 ------------------------------------------- Hash(哈希表) : 键值对存放数据 - 字典里面放字典 hset student1 name "Hao Luo" hset student1 age 38 hset student1 gender Male hget student1 name hget student1 gender hgetall student1 哈希表最适合放对象 -------------------列子------------ hset 10 dno 10 hset 10 dname 财务部 hset 10 dloc 重庆 get 10 hgetall 10 三个字节utf-8 hset 20 dno 20 hset 20 dname 研发部 hset 20 dloc 成都 hgetall 20 field - value 方式存在 hdel 10 dloc - 删哈希表里的字段 del key - 删键 hexists ... - 判断是否有... hincrby - 增加 ------------------------ List(列表) - push lpush foo 10 20 30 40 lrange - 取指定范围元素 -1 表示全部拿完元素 lrange foo 0 -1 - 倒序 rpush foo 10 20 30 40 lrange foo 0 -1 - 顺序 pop - 拿走元素 nil - 空, 元素没有了 lindex - 查看元素 linsert - 插入元素 lrem - 删除元素 列表应用场景(微博,生产者-消费者模式 - 消息队列) ------------------------------ Set(集合) - 元素不能重复 - 去重 sadd foo 10 10 20 10 20 30 sinter 求交集 foo bar sunion 并集 foo bar sddif 差集 foo bar sremove - 删元素 smembers - 删元素 foo scard foo ------------------------- SortedSet(有序集合) : zadd foo 100 hell 75 good 102 world 300 apple 根据设定的值排序 zrange foo 0 -1 zrevrange foo 0 -1(自动排序) - 游戏排位 zincrby foo 400 hello (加值) - 改变排位的值 zincrange foo 0 -1 可以看到改变后排位的值 type - 查看键的类型
|