麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
792
2023-05-12
手把手教你从零搭建一个Redis服务
前言
自己在搭建redis服务的时候碰到一些问题,好多人只告诉你怎么成功搭建,但是并没有整理过程中遇到的问题,所有楼主就花了点时间来整理下。
linux环境安装redis安装中的碰到的问题和解决办法怎么在代码中使用安装的redis设置用户名和密码程序应用中碰到的问题
介绍
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
一、安装redis
1、下载安装包
2、编译redis
3、准备配置文件
cd /usr/local/redis mkdir conf cd conf/ vi redis_6379.conf
配置文件内容如下:
4、启动服务
5、使用客户端链接
./redis-cli
判断是否启动成功
6、使用
查看数据
keys *
设置值
set oneKey 测试
获取值
get oneKey
二、安装中的碰到的问题和解决办法
问题一:
WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
临时解决办法:
echo 511 > /proc/sys/net/core/somaxconn
永久解决办法
vi /etc/sysctl.conf
在里面添加net.core.somaxconn= 1024 然后执行sysctl -p 就可以永久消除这个warning。
问题二:
可以参考问题一的解决
问题三:
执行命令echo never>/sys/kernel/mm/transparent hugepage/enabled
永久解决添加配置文件即可。
vi /etc/rc.local
三、怎么在代码中使用安装的redis呢
需要引用的jar包有:
示例代码:
public static void main(String[] args) { //创建redis对象 String ip = ""; Jedis jedis=new Jedis(ip,6379);//链接redis //记录操作个数 jedis.set("name", "小明"); System.out.println("name已经赋值"); String name = jedis.get("name"); System.out.println("赋值后获取name的值为:"+name); jedis.del("name"); System.out.println("name已经删除"); String nameT = jedis.get("name"); System.out.println("删除后获取name的值为:"+nameT); } //结果 name已经赋值 赋值后获取name的值为:小明 name已经删除 删除后获取name的值为:null
四、设置用户名和密码
1、在配置文件中redis_6379.conf直接添加requirepass 123456
2、通过命令添加
设置密码
#设置密码 config set requirepass 123456
查看密码
config get requirepass
需要验证密码以后才可以查看
测试代码
public static void main(String[] args) { //创建redis对象 String ip = ""; Jedis jedis=new Jedis(ip,6379);//链接redis jedis.auth("123456"); //记录操作个数 jedis.set("name", "小明"); System.out.println("name已经赋值"); String name = jedis.get("name"); System.out.println("赋值后获取name的值为:"+name); jedis.del("name"); System.out.println("name已经删除"); String nameT = jedis.get("name"); System.out.println("删除后获取name的值为:"+nameT); } #结果 name已经赋值 赋值后获取name的值为:小明 name已经删除 删除后获取name的值为:null
五、应用中碰到的问题
链接被拒绝或者超时问题
redis刚开始配置的ip是默认ip和端口127.0.0.1:6379,这个ip只能服务的本地进行链接。解决办法:
在配置文件中把这个ip给注释
在***中配置安全组
修改好配置文件和安全组以后,可以通过***服务的外网ip和redis的端口访问。
但是呢,又报一个问题,保护模式下拒绝访问。
根据提示修改配置文件redis_6379.conf中属性protected-mode no,并重启服务。
再次测试代码连接正常~
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。