1、reis设置登陆密码,redis-cli使用一下命令登陆
redis-cli -a <你的密码>
// 例
redis-cli -a 123456
2、linux 操作系统下的redis配置文件发生更改后,在shutdown后重启时,需指定配置文件。
否则配置文件不生效。redis会默认读取配置缓存。
./redis-server redis.conf &
&表示可以后台运行
3、其他机器上应用服务调用redis时,会提示DENIED Redis is running in protected mode,
方案(1)在redis.conf中关闭protected mode no
方案 (2) 在redis.conf中设置密码 requestpass "111111"
4、启动命令
./redis-server redis.conf
关闭:./redis-cli shutdown
进入命令:./redis-cli -a 密码
5、stringRedisTemplate 与 redisTemplate 两种方式存放的数据是不相通的,尽管stringRedisTemplate 是RedisTemplate 的子类。
使用stringRedisTemplate 存放的数据,RedisTemplate是读取不到的,相反一样;
同时stringRedisTemplate 存放的数据,可以通过redis-cli登陆命令端使用get 键值名 获取。
使用redis-cli登陆命令端set 键值名称 存放的数据,也可以使用stringRedisTemplate 获取。但是RedisTemplate 获取不到 redis-cli set的值
6、StringRedisTemplate与RedisTemplate的区别点
两者的关系是StringRedisTemplate继承RedisTemplate。
两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。
SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。
StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。
RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的
其实他们两者之间的区别主要在于他们使用的序列化类:
RedisTemplate使用的是JdkSerializationRedisSerializer 存入数据会将数据先序列化成字节数组然后在存入Redis数据库。
StringRedisTemplate使用的是StringRedisSerializer
使用时注意事项:
当你的redis数据库里面本来存的是字符串数据或者你要存取的数据就是字符串类型数据的时候,那么你就使用StringRedisTemplate即可。
但是如果你的数据是复杂的对象类型,而取出的时候又不想做任何的数据转换,直接从Redis里面取出一个对象,那么使用RedisTemplate是更好的选择。
7、Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种
Controller:@Resource RedisTemplate<String, String> redisTemplate;
方法:
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
8、RedisTemplate 存放java用户定义。
如果希望直接获取一个用户对象,该用户对象需事先序列化。因为RedisTemplate是先将内容序列化后再进行存放;
public class User implements Serializable {}
放置和读取时可以使用opsForHash操作,
redisTemplate.opsForHash().put("User_"+name,'1',user);
User user = (User)redisTemplate.opsForHash().get("User_"+request.getParameter("name"),'1'); --此处的1代表的是hashkey,需和put时保持一致,否则取不到