Redis学习总结
解决:NOAUTH Authentication required 无权限 问题
java连接redis数据库:https://www.cnblogs.com/Springmoon-venn/p/6775847.html
9. Redis
关系型数据库 :mysql oracle(数据与数据之间、表与字段之间、表与表之间)
非关系型数据库:nosql 去掉关系
关系型数据库:处理一般量级的数据,重要性数据保存 安全
非关系型数据库:处理海量数据,不安全
使用环境:做关系型数据库的缓存、任务队列、集合的大量数据的运算、排行榜
redis安装:依赖gcc环境
yum install gcc-c++
1>上传tar文件,解压到root目录
2>进入redis目录使用命令:make
3>安装:
make PREFIX=/usr/local/redis install
4>copy文件进入root解压的redis目录:
cp redis.conf /usr/local/redis
前端启动:首先进入redis文件夹(无法部署集群)
./bin/redis-server
mysql端口号:3306
tomcat端口号:8080
redis端口号:6379
客户端默认连接本机:cd /usr/local/redis
./bin/redis-cli
如果连接外网的计算机:cd /usr/local/redis
./bin/redis-cli -h ip地址 -p 端口号
后端启动:vim redis.conf
修改daemonize 为yes(daemon守护进程、后台程序)
cd /usr/local/redis
./bin/redis-service ./redis.conf
redis关闭:
非正常关闭:ps -ef 查询到PID。kill -9 pid
正常关闭:./bin/rdis-cli shutdown(使用客户端关闭)
redis中的key都是字符串
value:String
hash
list
set集合
有序的set集合
redis的解码与编码只发生在客户端没有频繁的编解码,不会发生乱码(二进制数据安全的)
赋值:set key value
如果赋予相同的key,新的value会覆盖老的value
取值:get key
删除:del key
getset username 王五(意思是把原先的值改为王五)
incr key (自增)
dicr key(自减)
incrby key 10(在原先基础上加10)
dicrby key 10(在原先基础上减10)(只能在数字型上使用)
append key value (字符串拼凑)
String使用环境:主要保存json格式的字符串
Hash特点:占用的磁盘空间较少
{name:"zhangsan",sex:"man"}
flushdb(删除刷新)
hset myhash username jack(赋值)
hmset myhash2 username rose age 21(赋值多个)
取值:hget myhash username
hmget myhash2 username age
hgetall myhash2(所有)
删除:hdel key 字段名
del key (删除整个的list)
hmset hash1 uname zhangsan age 18
hincrby hash1 age 10(年龄由原来的18增加10)
hexists hash1 uname(判断hash1中是否有uname字段)
hlen hash1 查看返回
hkeys key :获得所有的字段
hvals key:获得所有的value
连接池的工具抽取:
链表的使用:
赋值:lpush list1 a b c d 左边添加
rpush list2 a b c d 右边添加
查询 :lrange list 0 3 (查询全部)
lrange list 0 -1(查询全部,常用)
删值:lpop list1 删除d
rpop list2 删除a
例如:rpush list3 a b c a b c a b
删除列表中所有的a元素:lrm list3 0 3
删除链表中两个b,删除顺序从头到尾删除
lrem list3 2 b
通过索引替换:
如list1 a b c a b c 把元素为1 的元素替换dddd
lset list1 1 dddd
插入:
任务队列:
循环队列:
集合运算
差集:
交集
并集:
查看元素:如网站会员