java与redis连接过程中遇到问题
前言
一次偶然的机会看到位博主的文章用两天实现了某某管理系统利用redis,对这个知识点产生了好奇,并且现在很多招聘信息基本都有需要掌握redis,所有跟着学习学习
提示:以下是本篇文章正文内容,下面案例可供参考
一、redis是什么
Redis是一个基于内存的键值内心的键值型NoSQL数据库
特征
二、命令
1.redis通用命令
String类型常见命令
-
set : 添加或修改已存在的一个String类型的键值对 格式:[set key value] -
get:根据key获取String类型的value 格式:[get key] -
mset 批量添加多个String类型的键值对 格式:[mset key value [key value…]] -
mget 批量查看多个key获取多个String类型的value 格式:[mget key [key…]] -
INCR 让一个整数的key自增1 格式: [incr key] -
INCRBY 让一个整型的key自增并指定步长 格式:[incrby key n] -
INCRBYFLOAT 让一个浮点类型的数字自增并指定步长, 格式:[incrbyfloat key n] -
SETNX: 添加一个String类型的键值对,前提是这个key不存在,否则不执行 格式:[setnx key vlaue ] -
SETEX : 添加一个String类型的键值对,并且指定有效期 格式:[setnx key seconds value]
Hash常用命令
- hset 给集合中的对应的键赋值
- hget 从key集合filed取出value
- hmset 批量设置hash值
- hexists 给定域 field 是否存在
- hkeys 列出该hash集合的所有field
- hvals 列出该hash集合的所有value
- hincrby 为哈希表 key 中的域 field 的值加上增量 1
- hsetnx 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在
List常见命令
lpush/rpush 从左边/右边插入一个或多个值。 格式 [ lpush/rpush key value1 value2 value3 ] lpop/rpop 从左边/右边取出一个值。当值全部被取出后,对应的键也被删除。格式:[lpop/rpop key ] rpop lpush 列表右边取出一个值,插到key2列表左边。 lrange 按照索引下标获得元素(从左到右),start和stop分别为0和-1时表示获取所有元素值。格式[lrange key start stop ] lindex 按照索引下标获得元素(从左到右) lrem 从左边删除n个value(从左到右) lset 将列表key下标为index的值替换成value
Set常见命令
sadd 将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略 格式:[sadd key value1 value2 ] smembers : 取出该集合的所有值。 sismember : 判断集合 key 是否为含有该value 值,有1,没有0 scard : 返回该集合的元素个数。格式:[scard key] srem : 删除集合中的某个元素 格式: [srem key value1 value2 ] spop : 随机从该集合中吐出一个值。 srandmember: 随机从该集合中取出n个值。不会从集合中删除 。格式: [ srandmember key n ]
三、java与redis连接过程中有可能遇到的问题
1. Redis (error) NOAUTH Authentication required
这个是因为没有没有输入密码,导致的错误 ,在Java程序中添加即可 注意我的密码位redis123456,如果忘记了密码或者不知道如何设置,可用进入redis.conf里设置。
jedis.auth("redis123456");
2.DENIED Redis is running in protected mode because protected mode is enabled…
错误全体是这个
DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command ‘CONFIG SET protected-mode no’ from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to ‘no’, and then restarting the server. 3) If you started the server manually just for testing, restart it with the ‘–protected-mode no’ option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
错误的中英文翻译在这
遇到这个错误,需要检查redis.conf配置文件里三个属性
#bind 127.0.0.1 # 只能本地连接,要注释即可
daemonize no #要把yes改为no
关掉保护模式
protected-mode no
最关键的是让配置文件起作用,如果重启redis无效果,则可以试试下面的命令
redis-server redis.conf
ps axu|grep redis
kill -9 进程号
|