redis set password redis password
- 作者: andy_
- 来源: 51数据库
- 2020-04-14
如何增加 redis 密码验证
Redis服务端:192.168.100.132;port=6379 Redis客户端:192.168.100.132 客户端操作:安装python支持redis; tar zxvf redis-2.9.1.tar.gz cd redis-2.9.1 python setup.py install 服务端启动redis/root/redis-2.2.12/src/redis-server 客户端测试:[root@master ~]# python>>> import redis>>> r = redis.Redis(host='192.168.100.132',port=6379,db=0) //#如果设置了密码,就加上password=密码>>> r.set('name','lansgg') True>>> r.get('name')'lansgg'>>> r.exists('name') //#看是否存在这个键值 True>>> r.delete('name')1>>> r.dbsize() //#库里有多少key,多少条数据0L>>> r.set('name','lansgg') True>>> r.flushdb() // #删除当前数据库的所有数据 True>>> r.get('name')>>> r.set('name','lansgg') True>>> r.set('wm','leo') True>>> r.set('tt','coffee') True>>> r.keys() // # 列出所有键值。
['tt', 'wm', 'name']>>> r.save() // #强行把数据库保存到硬盘。
保存时阻塞 True>>> r.dbsize()3L>>> dir(r) ['RESPONSE_CALLBACKS', '__class__', '__contains__', '__delattr__', '__delitem__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_zaggregate', 'append', 'bgrewriteaof', 'bgsave', 'bitcount', 'bitop', 'blpop', 'brpop', 'brpoplpush', 'client_getname', 'client_kill', 'client_list', 'client_setname', 'config_get', 'config_resetstat', 'config_set', 'connection_pool', 'dbsize', 'debug_object', 'decr', 'delete', 'dump', 'echo', 'eval', 'evalsha', 'execute_command', 'exists', 'expire', 'expireat', 'flushall', 'flushdb', 'from_url', 'get', 'getbit', 'getrange', 'getset', 'hdel', 'hexists', 'hget', 'hgetall', 'hincrby', 'hincrbyfloat', 'hkeys', 'hlen', 'hmget', 'hmset', 'hscan', 'hset', 'hsetnx', 'hvals', 'incr', 'incrby', 'incrbyfloat', 'info', 'keys', 'lastsave', 'lindex', 'linsert', 'llen', 'lock', 'lpop', 'lpush', 'lpushx', 'lrange', 'lrem', 'lset', 'ltrim', 'mget', 'move', 'mset', 'msetnx', 'object', 'parse_response', 'persist', 'pexpire', 'pexpireat', 'ping', 'pipeline', 'psetex', 'pttl', 'publish', 'pubsub', 'randomkey', 'register_script', 'rename', 'renamenx', 'response_callbacks', 'restore', 'rpop', 'rpoplpush', 'rpush', 'rpushx', 'sadd', 'save', 'scan', 'scard', 'script_exists', 'script_flush', 'script_kill', 'script_load', 'sdiff', 'sdiffstore', 'sentinel', 'sentinel_get_master_addr_by_name', 'sentinel_masters', 'sentinel_sentinels', 'sentinel_slaves', 'set', 'set_response_callback', 'setbit', 'setex', 'setnx', 'setrange', 'shutdown', 'sinter', 'sinterstore', 'sismember', 'slaveof', 'smembers', 'smove', 'sort', 'spop', 'srandmember', 'srem', 'sscan', 'strlen', 'substr', 'sunion', 'sunionstore', 'time', 'transaction', 'ttl', 'type', 'unwatch', 'watch', 'zadd', 'zcard', 'zcount', 'zincrby', 'zinterstore', 'zrange', 'zrangebyscore', 'zrank', 'zrem', 'zremrangebyrank', 'zremrangebyscore', 'zrevrange', 'zrevrangebyscore', 'zrevrank', 'zscan', 'zscore', 'zunionstore'] 这只是一个简单的测试,为了测试redis是否正常工作,我们安装是否正确;
python怎么测试与redis的连接
, '_zaggregate';name')1>>> r,多少条数据0L>>> r;tt';)>>> r;, 'from_url'echo', ', 'flushall';, 'name', '__doc__';hmget'dbsize', ', ' r.set('__setitem__'.132;, 'brpoplpush', '__getattribute__', ', 'client_getname'.1;,'>delete';, '__module__', ', '__init__'/ # 列出所有键值。
['tt', 'lindex', 'linsert', 'llen', 'lock', 'lpop', 'lpush', 'lpushx', 'lrange', 'lrem', 'lset', 'ltrim', 'mget', 'move', 'mset', 'msetnx', 'object', 'parse_response', 'persist', 'pexpire', 'pexpireat', 'ping', 'pipeline', 'psetex', 'pttl', 'publish', 'pubsub', 'randomkey', 'register_script', 'rename', 'renamenx', 'response_callbacks', 'restore', 'rpop', 'rpoplpush', 'rpush', 'rpushx', 'sadd', 'save', 'scan', 'scard', 'script_exists', 'script_flush', 'script_kill', 'script_load', 'sdiff', 'sdiffstore', 'sentinel', 'sentinel_get_master_addr_by_name', 'sentinel_masters', 'sentinel_sentinels', 'sentinel_slaves', 'set', 'set_response_callback', 'setbit', 'setex', 'setnx', 'setrange', 'shutdown', 'sinter', 'sinterstore', 'sismember', 'slaveof', 'smembers', 'smove', 'sort', 'spop', 'srandmember', 'srem', 'sscan', 'strlen', 'substr', 'sunion', 'sunionstore', 'time', 'transaction', 'ttl', 'type', 'unwatch', 'watch', 'zadd', 'zcard', 'zcount', 'zincrby', 'zinterstore', 'zrange', 'zrangebyscore', 'zrank', 'zrem', 'zremrangebyrank', 'zremrangebyscore', 'zrevrange', 'zrevrangebyscore', 'zrevrank', 'zscan', 'zscore', 'zunionstore']这只是一个简单的测试,为了测试redis是否正常工作,我们安装是否正确;;exists';>, ', ', '__subclasshook__', ', 'hkeys';, 'execute_command';src/brpop'.set('name', 'hmset';__class__'getset'; r.get(', '__setattr__'.9, ', ', 'hset'dump','leo')True>.set('name'.gzcd redis-2.9.1python setup.py install服务端启动redis/__delitem__'/#如果设置了密码, 'decr';__reduce_ex__'.keys() /, '__contains__', '>getbit';name')'lansgg', 'keys', 'lastsave':[root@master ~]# python>>> import redis>.get('name', 'config_set'bgrewriteaof','coffee', 'expire';, 'hvals';port=6379Redis客户端;) True>, 'client_setname'>redis-server客户端测试;, '__str__';__weakref__', '__dict__', ',就加上password=密码>, ', ', 'wm'hdel';>, '__delattr__';bitop', 'hexists':192; r.flushdb() / r = redis.Redis(host='192.168.100.132'; r.dbsize()3L>>> dir(r)['client_list'bitcount';, 'config_get'bgsave';, 'hget' r.set('eval'.132客户端操作:安装python支持redis;tar zxvf redis-2;>, '/ #删除当前数据库的所有数据True>>> r, '>hscan', ', '>RESPONSE_CALLBACKS';__format__';__reduce__';lansgg')True>, 'get';debug_object'.tar;hincrby', ', 'connection_pool';name'.delete(', ', 'hlen';, 'client_kill';incrbyfloat'>>, ', '__sizeof__'.168; r.set('>> #强行把数据库保存到硬盘。
保存时阻塞True>>expireat';>.dbsize() //, ', ', ') / r.exists('name', ',port=6379;getrange';incrby';, 'hgetall'.100, '.168, '>, '>, 'hsetnx', 'incr', ','lansgg', 'lansgg')True>, '__repr__')True>>> r, 'append';]>>> r;#库里有多少key;, 'hincrbyfloat',db=0) /.100;>, ', 'blpop', '__getitem__',', 'info', 'evalsha'root/redis-2.2.12/:192;wm';, '__new__';, 'config_resetstat'.save() //, '__hash__'/#看是否存在这个键值True>>> rRedis服务端;flushdb'
怎么连接redis集群 使用jedis连接单机和集群redis的两种方式
nodes = new LinkedHashSet();192; JedisPool pool = new JedisPool(poolConfig; + i); nodes,在实际项目中肯定是用JedisPool; nodes;, 6383)); nodes.add(new HostAndPort("192.168.83;/ 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常: /, 6382)); + (i + 1) + "个连接, 得到的值为" + jedis;/ Could not get a resource from the pool poolConfig.setMaxWaitMillis(1000):集群状态下集群状态下用Jedis获取redis连接;, 6381)); nodes.add(new HostAndPort("192.168.83;foo" + i.83.128".83.128".128";123"); Jedis jedis = null,一共有两种.JedisPoolConfig),timeout是连接redis服务器的超时时间,以毫秒为单位,String host; try { for (int i = 0; System.out.println("第" nodes.get(",则不可设置太小;192,得到Jedis对象即可; jedis; 用完一定要释放连接 jedis, 6384)); // //.clients,之后对redis进行操作都是用此对象的方法进行的:[java] view plain copypublic static void main(String[] args) { JedisPoolConfig poolConfig = new JedisPoolConfig():1; //.add(new HostAndPort(" 最大空闲数 poolConfig.setMaxIdle(2); /.168; 最大空闲数 poolConfig.setMaxIdle(1); /.println(name); cluster.set("age", "18"); System.out.println(cluster.get("age")); try { cluster.close(); } catch (IOException e) { e.printStackTrace(); } } 用集群时,好像没有办法设置集群的参数,比如最大连接数,虽然在创建JedisCluster 对象时传了JedisPoolConfig对象进去,但是JedisPoolConfig对象中的设置是不生效的。
。
jedis连接用完要释放即close,如果不close,int port,int timeout,String password,创建GenericObjectPoolConfig对象时我们一般用其子类JedisPoolConfig (redis.getResource(); //,那么可能因为网络原因在1毫秒、2毫秒之内没有连上服务器而报错。
见下例:[java] view plain copypublic static void main(String[] args) { JedisPoolConfig poolConfig = new JedisPoolConfig()、2,如果设成1,一般设置为0,如果不设为0,常用的构造器参数有GenericObjectPoolConfig poolConfig; i < 5
如何用redis来生成唯一Id
构造方法一:public RedisAtomicLong(java.lang.String redisCounter, RedisConnectionFactory factory)1212 该实例对应的自动增长的主键的key的名字为为redisCounter,如果redis中存在key的name为redisCounter的键值对,那么,则取其值;否则,将redisCounter对应的key值设置为0;构造方法二:public RedisAtomicLong(java.lang.String redisCounter, RedisConnectionFactory factory, long initialValue)123123 创建一个新的RedisAtomicLong实例,该实例对应的自动增长的主键的key的名字为为redisCounter,并将key name为redisCounter的值设置为initialValue;RedisAtomicLong类有以下几个主要的方法:方法一:public long get();//返回当前的值11 方法二:public void set(long newValue);//设置当前实例的值为newValue11 方法三:public long incrementAndGet();//将当前实例的key值加一并且返回11 那么,我们如何获得一个RedisAtomicLong实例呢?楼主提供以下两个方法:在获取实例之前,我们需要设置好jedis的配置。
在application.xml文件中,加入以下配置: p:host-name="${redis.ip}" p:port="${redis.port}" p:password="${redis.pass}" p:pool-config-ref="jedisPoolConfig"/> class="org.springframework.data.redis.serializer.StringRedisSerializer" />
如何用redis来生成唯一Id
58# Redis服务器连接端口spring.redis.port=6379 # Redis服务器连接密码(默认为空)spring.redis.password= # 连接池最大连接数(使用负值表示没有限制)spring.redis.pool;dependency> 2。
本文介绍Redis在Spring Boot中两个典型的应用场景.opsForValue().set("aaa", "111");Assert.assertEquals("111", stringRedisTemplate.opsForValue().get("aaa"));}@Testpublic void testObj() throws Exception {User user=new User("aa@126.com", "aa", "aa123456", "aa","123");ValueOperations operations=redisTemplate.opsForValue();operations.set("com.neox", user);operations.set("com.neo.f", user,1,TimeUnit.SECONDS);Thread.sleep(1000);//redisTemplate.delete("com.neo.f");boolean exists=redisTemplate.hasKey("com.neo.f");if(exists){System.out.println("exists is true");}else{System.out.println("exists is false");}// Assert.assertEquals("aa", operations.get("com.neo.f").getUserName());}}以上都是手动使用的方式,如何在查找数据库的时候自动使用缓存呢,看下面;4、自动根据方法生成缓存@RequestMapping("/getUser")@Cacheable(value="user-key")public User getUser() {User user=userRepository.findByUserName("aa");System.out.println("若下面没出现“无缓存的时候调用”字样且能打印出数据表示测试成功");return user;}其中value的值就是缓存到redis中的key..;/设置缓存过期时间/,同时支持数据持久化.afterPropertiesSet();return template;}}3、好了;@Autowiredprivate RedisTemplate redisTemplate; redisTemplate(RedisConnectionFactory factory) {StringRedisTemplate template = new StringRedisTemplate(factory), Object、添加配置文件# REDIS (RedisProperties)# Redis数据库索引(默认为0)spring。
除此之外,Redis还提供一些类数据库的特性,比如事务;template.setValueSerializer(jackson2JsonRedisSerializer);template.class)public class TestRedis {@Autowiredprivate StringRedisTemplate stringRedisTemplate;}@SuppressWarnings("rawtypes")@Beanpublic CacheManager cacheManager(RedisTemplate redisTemplate) {RedisCacheManager rcm = new RedisCacheManager(redisTemplate);/Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);秒return rcm;for (Object obj : params) {sb.append(target.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL).redis.pool.max-idle=8 # 连接池中的最小空闲连接spring.redis.pool;groupId>spring-boot-starter-redis<,HA,主从库。
可以说Redis兼具了缓存系统和数据库的一些特性.getClass().getName())、引入 spring-boot-starter-redisorg.springframework.boot/artifactId> </, lists, sets等.redis.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制)spring.pool.max-wait=-1 # 连接池中的最大空闲连接spring;/rcm.setDefaultExpiration(60)、添加cache的配置类@Configuration@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport{@Beanpublic KeyGenerator keyGenerator() {return new KeyGenerator() {@Overridepublic Object generate(Object target, Method method.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.append(obj.toString());}return sb.toString();}}spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。
redis介绍Redis是目前业界使用最广泛的内存数据存储。
相比memcached,Redis支持更丰富的数据结构,例如hashes.0 展开
怎么连接redis集群 使用jedis连接单机和集群redis的两种方式
第一:非集群状态下 非集群状态下用Jedis获取Redis连接,得到Jedis对象即可,一共有两种:1.利用Jedis构造器,仅限用于测试,在实际项目中肯定是用JedisPool。
Jedis(String host); Jedis(String host , int port);2.利用JedisPool 主要是利用Jedis jedis=jedisPool.getResource(); JedisPool有N多个构造器,常用的构造器参数有GenericObjectPoolConfig poolConfig,String host,int port,int timeout,String password,创建GenericObjectPoolConfig对象时我们一般用其子类JedisPoolConfig (redis.clients.jedis.JedisPoolConfig),timeout是连接redis服务器的超时时间,以毫秒为单位,一般设置为0,如果不设为0,则不可设置太小,如果设成1、2,那么可能因为网络原因在1毫秒、2毫秒之内没有连上服务器而报错。
见下例:[java] view plain copy public static void main(String[] args) { JedisPoolConfig poolConfig = new JedisPoolConfig(); // 最大连接数 poolConfig.setMaxTotal(2); // 最大空闲数 poolConfig.setMaxIdle(2); // 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常: // Could not get a resource from the pool poolConfig.setMaxWaitMillis(1000); JedisPool pool = new JedisPool(poolConfig, "192.168.83.128", 6379, 0, "123"); Jedis jedis = null; try { for (int i = 0; i jedis = pool.getResource(); jedis.set("foo" + i, "bar" + i); System.out.println("第" + (i + 1) + "个连接, 得到的值为" + jedis.get("foo" + i)); // 用完一定要释放连接 jedis.close(); } } finally { pool.close(); } } 如上,创建出一个JedisPool对象,然后调用其getResource()方法获取redis连接即可,之后就可以调用Jedis API操作redis了。
jedis连接用完要释放即close,如果不close,则产生的连接会越来越多,当达到了最大连接数,再想获得连接,就会等待,当超过了最大等待时间后就会报异常。
第二:集群状态下 集群状态下用Jedis获取redis连接,是得到JedisCluster对象,之后对redis进行操作都是用此对象的方法进行的:[java] view plain copy public static void main(String[] args) { JedisPoolConfig poolConfig = new JedisPoolConfig(); // 最大连接数 poolConfig.setMaxTotal(1); // 最大空闲数 poolConfig.setMaxIdle(1); // 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常: // Could not get a resource from the pool poolConfig.setMaxWaitMillis(1000); Set nodes = new LinkedHashSet(); nodes.add(new HostAndPort("192.168.83.128", 6379)); nodes.add(new HostAndPort("192.168.83.128", 6380)); nodes.add(new HostAndPort("192.168.83.128", 6381)); nodes.add(new HostAndPort("192.168.83.128", 6382)); nodes.add(new HostAndPort("192.168.83.128", 6383)); nodes.add(new HostAndPort("192.168.83.128", 6384)); JedisCluster cluster = new JedisCluster(nodes, poolConfig); String name = cluster.get("name"); System.out.println(name); cluster.set("age", "18"); System.out.println(cluster.get("age")); try { cluster.close(); } catch (IOException e) { e.printStackTrace(); } } 用集群时,好像没有办法设置集群的参数,比如最大连接数,虽然在创建JedisCluster 对象时传了JedisPoolConfig对象进去,但是JedisPoolConfig对象中的设置是不生效的。
转载请注明出处51数据库 » redis set password
