1

How do I execute this "Hello Redis!!!" sample from the host?

root@mordor:~# 
root@mordor:~# docker container ls
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS               NAMES
0d51479c1b57        redislabs/redis-py   "docker-entrypoint.s…"   12 minutes ago      Up 12 minutes       6379/tcp            redis-python
ea782770bcff        redis                "docker-entrypoint.s…"   26 minutes ago      Up 26 minutes       6379/tcp            rd
root@mordor:~# 
root@mordor:~# docker exec -it --user root redis-python bash
root@0d51479c1b57:/usr/src/app# 
root@0d51479c1b57:/usr/src/app# ls
requirements.txt  test_db.py  test_db.py.1
root@0d51479c1b57:/usr/src/app# 
root@0d51479c1b57:/usr/src/app# cat test_db.py.1 
# The MIT License (MIT)
#
# Copyright (c) 2018 Redis Labs
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Script Name: settings.sh
# Author: Cihan Biyikoglu - github:(cihanb)


import sys
import redis

# try:

print (":: test_db.py")

if (len(sys.argv) <= 1):
    print("Need to provide a DB port to test connectiivity. Example: python Redis-Python-Sample.py 12000")

host_name = sys.argv[1]
db_port = sys.argv[2]

print("Connecting to host={0} and port={1}".format(host_name,db_port))
r = redis.StrictRedis(host=host_name, port=db_port, db=0)

print("Set key 'key1' to value '123' on host={0} and port={1}".format(host_name,db_port))
r.set('key1', '123')

print("Get key 'key1' and validate value is '123' on host={0} and port={1}".format(host_name,db_port))
if (r.get('key1') == b'123'):
    print("DB TEST PASSED")
else:
    print("DB TEST FAILED: Can't find the key")

# except:
#     print("DB TEST FAILED")


root@0d51479c1b57:/usr/src/app#  
root@0d51479c1b57:/usr/src/app# cat test_db.py
import sys
import redis

print (":: test_db.py")


    
r = redis.StrictRedis(host="127.0.0.1", port=6379, decode_responses=True)
    
r.set("msg:hello", "Hello Redis!!!")
    
msg = r.get("msg:hello")
    
print(msg)

    
if (r.get('key1') == b'123'):
    print("DB TEST PASSED")
else:
    print("DB TEST FAILED: Can't find the key")
root@0d51479c1b57:/usr/src/app# 
root@0d51479c1b57:/usr/src/app# cat requirements.txt 
redis



root@0d51479c1b57:/usr/src/app# 
root@0d51479c1b57:/usr/src/app# python3 test_db.py
Traceback (most recent call last):
  File "test_db.py", line 2, in <module>
    import redis
ImportError: No module named 'redis'
root@0d51479c1b57:/usr/src/app# 
root@0d51479c1b57:/usr/src/app# pip3 install redis
Downloading/unpacking redis
  Downloading redis-3.5.3-py2.py3-none-any.whl (72kB): 72kB downloaded
Installing collected packages: redis
Successfully installed redis
Cleaning up...
root@0d51479c1b57:/usr/src/app# 
root@0d51479c1b57:/usr/src/app# python3 test_db.py
:: test_db.py
Hello Redis!!!
DB TEST FAILED: Can't find the key
root@0d51479c1b57:/usr/src/app# 

it's fine that the test failed, only concerned about execution.

I dumbed down the script to better work with the default community build of redis.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.