redis 2020-06-21
类型 | 部分代表 | 特点 |
列存储 | Hbase Cassandra Hypertable | 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 |
文档存储 | MongoDB CouchDB | 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。 |
key-value存储 | Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis | 可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) |
图存储 | Neo4J FlockDB | 图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 |
对象存储 | db4o Versant | 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
xml数据库 | Berkeley DB XML BaseX | 高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。 |
tar zxvf redis-3.2.5.tar.gz
sudo mv -r redis-3.2.3/* /usr/local/redis/ 进入redis目录 cd /usr/local/redis/
sudo make
sudo make test 这段运行时间会较长
sudo make install
redis-server 按ctrl+c停止
redis-cli -h 192.168.1.26 -a
ping set ‘a‘ ‘123‘
bind 127.0.0.1
port 6379
daemonize no|yes
dbfilename dump.rdb
dir的默认值为./,表示当前目录 推荐改为:dir /var/lib/redis
sudo cp /usr/local/redis/redis.conf /etc/redis/
sudo redis-server /etc/redis/redis.conf
ps ajx|grep redis sudo kill -9 redis的进程id
值的类型分为五种:
数据操作的全部命令,可以查看中文网站
set key value
SETEX key seconds value
MSET key value [key value ...]
GET key
MGET key [key ...]
INCR key
INCRBY key increment
DECR key
DECRBY key decrement
APPEND key value
STRLEN key
KEYS pattern
EXISTS key [key ...]
TYPE key
DEL key [key ...]
EXPIRE key seconds
TTL key
HSET key field value
HMSET key field value [field value ...]
HGET key field
HMGET key field [field ...]
HGETALL key
HKEYS key
HLEN key
HVALS key
HEXISTS key field
HDEL key field [field ...]
HSTRLEN key field
LPUSH key value [value ...]
RPUSH key value [value ...]
LINSERT key BEFORE|AFTER pivot value
LSET key index value
LPOP key
RPOP key
LRANGE key start stop
LTRIM key start stop
LLEN key
LINDEX key index
SADD key member [member ...]
SMEMBERS key
SCARD key
SINTER key [key ...]
SDIFF key [key ...]
SUNION key [key ...]
SISMEMBER key member
ZADD key score member [score member ...]
ZRANGE key start stop
ZCARD key
ZCOUNT key min max
ZSCORE key member
SUBSCRIBE 频道名称 [频道名称 ...]
UNSUBSCRIBE 频道名称 [频道名称 ...]
PUBLISH 频道 消息
bind 192.168.1.10
bind 192.168.1.11 slaveof 192.168.1.10 6379
set hello world
get hello
sudo pip install redis
unzip redis-py-master.zip cd redis-py-master sudo python setup.py install
import redis
try: r=redis.StrictRedis(host=‘localhost‘,port=6379) except Exception,e: print e.message
r.set(‘name‘,‘hello‘) r.get(‘name‘)
pipe = r.pipeline() pipe.set(‘name‘, ‘world‘) pipe.get(‘name‘) pipe.execute()
import redis class RedisHelper(): def __init__(self,host=‘localhost‘,port=6379): self.__redis = redis.StrictRedis(host, port) def get(self,key): if self.__redis.exists(key): return self.__redis.get(key) else: return "" def set(self,key,value): self.__redis.set(key,value)
#encoding=utf-8 from t2 import RedisHelper from t3 import MysqlHelper import hashlib name=raw_input("请输入用户名:") pwd=raw_input("请输入密码:") sha1=hashlib.sha1() sha1.update(pwd) pwd1=sha1.hexdigest() try: redis=RedisHelper() if redis.get(‘uname‘)==name: print ‘ok‘ else: mysql=MysqlHelper(‘localhost‘,3306,‘test1‘,‘root‘,‘mysql‘) upwd=mysql.get_one(‘select upwd from userinfos where uname=%s‘,[name]) if upwd==None: print ‘用户名错误‘ elif upwd[0]==pwd1: redis.set(‘uname‘, name) print ‘登录成功‘ else: print "密码错误" except Exception,e: print e.message